diff --git a/build.sbt b/build.sbt
index 93e9a205..a0370a59 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.6",
+ "org.openapitools" % "jackson-databind-nullable" % "0.2.10",
"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/AddMicrosoftTeamsChatTabTaskParams.md b/docs/AddMicrosoftTeamsChatTabTaskParams.md
new file mode 100644
index 00000000..bfddec88
--- /dev/null
+++ b/docs/AddMicrosoftTeamsChatTabTaskParams.md
@@ -0,0 +1,24 @@
+
+
+# AddMicrosoftTeamsChatTabTaskParams
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] |
+|**chat** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | |
+|**title** | **String** | The tab title | |
+|**link** | **String** | The tab link | |
+
+
+
+## Enum: TaskTypeEnum
+
+| Name | Value |
+|---- | -----|
+| ADD_MICROSOFT_TEAMS_CHAT_TAB | "add_microsoft_teams_chat_tab" |
+
+
+
diff --git a/docs/AlertTriggerParamsAlertPayloadConditions.md b/docs/AlertTriggerParamsAlertPayloadConditions.md
new file mode 100644
index 00000000..573c7ba4
--- /dev/null
+++ b/docs/AlertTriggerParamsAlertPayloadConditions.md
@@ -0,0 +1,24 @@
+
+
+# AlertTriggerParamsAlertPayloadConditions
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**logic** | [**LogicEnum**](#LogicEnum) | | [optional] |
+|**conditions** | [**List<AlertTriggerParamsAlertPayloadConditionsConditionsInner>**](AlertTriggerParamsAlertPayloadConditionsConditionsInner.md) | | [optional] |
+
+
+
+## Enum: LogicEnum
+
+| Name | Value |
+|---- | -----|
+| ALL | "ALL" |
+| ANY | "ANY" |
+| NONE | "NONE" |
+
+
+
diff --git a/docs/AlertTriggerParamsAlertPayloadConditionsConditionsInner.md b/docs/AlertTriggerParamsAlertPayloadConditionsConditionsInner.md
new file mode 100644
index 00000000..8406b750
--- /dev/null
+++ b/docs/AlertTriggerParamsAlertPayloadConditionsConditionsInner.md
@@ -0,0 +1,32 @@
+
+
+# AlertTriggerParamsAlertPayloadConditionsConditionsInner
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**query** | **String** | | |
+|**operator** | [**OperatorEnum**](#OperatorEnum) | | |
+|**values** | **List<String>** | | [optional] |
+|**useRegexp** | **Boolean** | | [optional] |
+
+
+
+## Enum: OperatorEnum
+
+| 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/ApiKey.md b/docs/ApiKey.md
new file mode 100644
index 00000000..5f9ce7f5
--- /dev/null
+++ b/docs/ApiKey.md
@@ -0,0 +1,32 @@
+
+
+# ApiKey
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**name** | **String** | The name of the API key | |
+|**description** | **String** | A description of the API key | [optional] |
+|**kind** | [**KindEnum**](#KindEnum) | The kind of the API key | |
+|**roleId** | **String** | The role ID | [optional] |
+|**onCallRoleId** | **String** | The on-call role ID | [optional] |
+|**createdAt** | **String** | Date of creation | |
+|**updatedAt** | **String** | Date of last update | |
+|**expiresAt** | **String** | Expiration date | [optional] |
+|**lastUsedAt** | **String** | Date of last use | [optional] |
+|**gracePeriodEndsAt** | **String** | Grace period end date | [optional] |
+
+
+
+## Enum: KindEnum
+
+| Name | Value |
+|---- | -----|
+| PERSONAL | "personal" |
+| TEAM | "team" |
+| ORGANIZATION | "organization" |
+
+
+
diff --git a/docs/ApiKeyList.md b/docs/ApiKeyList.md
new file mode 100644
index 00000000..3847164d
--- /dev/null
+++ b/docs/ApiKeyList.md
@@ -0,0 +1,15 @@
+
+
+# ApiKeyList
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**List<ApiKeyResponseData>**](ApiKeyResponseData.md) | | |
+|**links** | [**Links**](Links.md) | | |
+|**meta** | [**Meta**](Meta.md) | | |
+
+
+
diff --git a/docs/ApiKeyResponse.md b/docs/ApiKeyResponse.md
new file mode 100644
index 00000000..3c9e8412
--- /dev/null
+++ b/docs/ApiKeyResponse.md
@@ -0,0 +1,13 @@
+
+
+# ApiKeyResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**ApiKeyResponseData**](ApiKeyResponseData.md) | | |
+
+
+
diff --git a/docs/ApiKeyResponseData.md b/docs/ApiKeyResponseData.md
new file mode 100644
index 00000000..4cfe1c59
--- /dev/null
+++ b/docs/ApiKeyResponseData.md
@@ -0,0 +1,23 @@
+
+
+# ApiKeyResponseData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | Unique ID of the API key | |
+|**type** | [**TypeEnum**](#TypeEnum) | | |
+|**attributes** | [**ApiKey**](ApiKey.md) | | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| API_KEYS | "api_keys" |
+
+
+
diff --git a/docs/ApiKeyWithTokenResponse.md b/docs/ApiKeyWithTokenResponse.md
new file mode 100644
index 00000000..a5be96d4
--- /dev/null
+++ b/docs/ApiKeyWithTokenResponse.md
@@ -0,0 +1,13 @@
+
+
+# ApiKeyWithTokenResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**ApiKeyWithTokenResponseData**](ApiKeyWithTokenResponseData.md) | | |
+
+
+
diff --git a/docs/ApiKeyWithTokenResponseData.md b/docs/ApiKeyWithTokenResponseData.md
new file mode 100644
index 00000000..6e68b146
--- /dev/null
+++ b/docs/ApiKeyWithTokenResponseData.md
@@ -0,0 +1,23 @@
+
+
+# ApiKeyWithTokenResponseData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | Unique ID of the API key | |
+|**type** | [**TypeEnum**](#TypeEnum) | | |
+|**attributes** | [**ApiKeyWithTokenResponseDataAttributes**](ApiKeyWithTokenResponseDataAttributes.md) | | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| API_KEYS | "api_keys" |
+
+
+
diff --git a/docs/ApiKeyWithTokenResponseDataAttributes.md b/docs/ApiKeyWithTokenResponseDataAttributes.md
new file mode 100644
index 00000000..796c1914
--- /dev/null
+++ b/docs/ApiKeyWithTokenResponseDataAttributes.md
@@ -0,0 +1,33 @@
+
+
+# ApiKeyWithTokenResponseDataAttributes
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**name** | **String** | The name of the API key | |
+|**description** | **String** | A description of the API key | [optional] |
+|**kind** | [**KindEnum**](#KindEnum) | The kind of the API key | |
+|**roleId** | **String** | The role ID | [optional] |
+|**onCallRoleId** | **String** | The on-call role ID | [optional] |
+|**createdAt** | **String** | Date of creation | |
+|**updatedAt** | **String** | Date of last update | |
+|**expiresAt** | **String** | Expiration date | [optional] |
+|**lastUsedAt** | **String** | Date of last use | [optional] |
+|**gracePeriodEndsAt** | **String** | Grace period end date | [optional] |
+|**token** | **String** | The API key token (only shown once) | |
+
+
+
+## Enum: KindEnum
+
+| Name | Value |
+|---- | -----|
+| PERSONAL | "personal" |
+| TEAM | "team" |
+| ORGANIZATION | "organization" |
+
+
+
diff --git a/docs/ApiKeysApi.md b/docs/ApiKeysApi.md
new file mode 100644
index 00000000..55ed6e94
--- /dev/null
+++ b/docs/ApiKeysApi.md
@@ -0,0 +1,475 @@
+# ApiKeysApi
+
+All URIs are relative to *https://api.rootly.com*
+
+| Method | HTTP request | Description |
+|------------- | ------------- | -------------|
+| [**createApiKey**](ApiKeysApi.md#createApiKey) | **POST** /v1/api_keys | Creates an API key |
+| [**deleteApiKey**](ApiKeysApi.md#deleteApiKey) | **DELETE** /v1/api_keys/{id} | Revoke an API key |
+| [**getApiKey**](ApiKeysApi.md#getApiKey) | **GET** /v1/api_keys/{id} | Retrieves an API key |
+| [**listApiKeys**](ApiKeysApi.md#listApiKeys) | **GET** /v1/api_keys | List API keys |
+| [**rotateApiKey**](ApiKeysApi.md#rotateApiKey) | **POST** /v1/api_keys/{id}/rotate | Rotate an API key |
+| [**updateApiKey**](ApiKeysApi.md#updateApiKey) | **PUT** /v1/api_keys/{id} | Update an API key |
+
+
+
+# **createApiKey**
+> ApiKeyWithTokenResponse createApiKey(newApiKey)
+
+Creates an API key
+
+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.
+
+### 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.ApiKeysApi;
+
+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");
+
+ ApiKeysApi apiInstance = new ApiKeysApi(defaultClient);
+ NewApiKey newApiKey = new NewApiKey(); // NewApiKey |
+ try {
+ ApiKeyWithTokenResponse result = apiInstance.createApiKey(newApiKey);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ApiKeysApi#createApiKey");
+ 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 |
+|------------- | ------------- | ------------- | -------------|
+| **newApiKey** | [**NewApiKey**](NewApiKey.md)| | |
+
+### Return type
+
+[**ApiKeyWithTokenResponse**](ApiKeyWithTokenResponse.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** | API key created | - |
+| **422** | invalid request | - |
+| **401** | responds with unauthorized for invalid token | - |
+
+
+# **deleteApiKey**
+> ApiKeyResponse deleteApiKey(id)
+
+Revoke an API key
+
+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.
+
+### 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.ApiKeysApi;
+
+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");
+
+ ApiKeysApi apiInstance = new ApiKeysApi(defaultClient);
+ UUID id = UUID.randomUUID(); // UUID |
+ try {
+ ApiKeyResponse result = apiInstance.deleteApiKey(id);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ApiKeysApi#deleteApiKey");
+ 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**| | |
+
+### Return type
+
+[**ApiKeyResponse**](ApiKeyResponse.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** | API key revoked | - |
+| **404** | API key not found | - |
+
+
+# **getApiKey**
+> ApiKeyResponse getApiKey(id, include)
+
+Retrieves an API key
+
+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.
+
+### 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.ApiKeysApi;
+
+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");
+
+ ApiKeysApi apiInstance = new ApiKeysApi(defaultClient);
+ UUID id = UUID.randomUUID(); // UUID |
+ String include = "include_example"; // String | Comma-separated list of relationships to include (role, on_call_role, created_by, groups)
+ try {
+ ApiKeyResponse result = apiInstance.getApiKey(id, include);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ApiKeysApi#getApiKey");
+ 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**| | |
+| **include** | **String**| Comma-separated list of relationships to include (role, on_call_role, created_by, groups) | [optional] |
+
+### Return type
+
+[**ApiKeyResponse**](ApiKeyResponse.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** | API key found | - |
+| **404** | API key not found | - |
+
+
+# **listApiKeys**
+> ApiKeyList listApiKeys(include, pageNumber, pageSize, filterKind, filterSearch, filterName, filterUserId, filterGroupIds, filterRoleId, filterActive, filterExpired, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterExpiresAtGt, filterExpiresAtGte, filterExpiresAtLt, filterExpiresAtLte, filterLastUsedAtGt, filterLastUsedAtGte, filterLastUsedAtLt, filterLastUsedAtLte, sort)
+
+List API keys
+
+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`.
+
+### 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.ApiKeysApi;
+
+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");
+
+ ApiKeysApi apiInstance = new ApiKeysApi(defaultClient);
+ String include = "include_example"; // String | Comma-separated list of relationships to include (role, on_call_role, created_by, groups)
+ Integer pageNumber = 56; // Integer |
+ Integer pageSize = 56; // Integer |
+ String filterKind = "filterKind_example"; // String | Filter by API key kind: personal, team, organization
+ String filterSearch = "filterSearch_example"; // String | Search by name (case-insensitive partial match)
+ String filterName = "filterName_example"; // String | Filter by exact name
+ String filterUserId = "filterUserId_example"; // String | Filter by the user ID that owns the key
+ String filterGroupIds = "filterGroupIds_example"; // String | Filter team keys by group IDs (comma-separated)
+ String filterRoleId = "filterRoleId_example"; // String | Filter by role ID
+ Boolean filterActive = true; // Boolean | When true, return only non-expired keys
+ Boolean filterExpired = true; // Boolean | When true, return only expired keys
+ String filterCreatedAtGt = "filterCreatedAtGt_example"; // String | Created after (ISO 8601)
+ String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | Created at or after (ISO 8601)
+ String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | Created before (ISO 8601)
+ String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | Created at or before (ISO 8601)
+ String filterExpiresAtGt = "filterExpiresAtGt_example"; // String | Expires after (ISO 8601)
+ String filterExpiresAtGte = "filterExpiresAtGte_example"; // String | Expires at or after (ISO 8601)
+ String filterExpiresAtLt = "filterExpiresAtLt_example"; // String | Expires before (ISO 8601). Useful for finding keys approaching expiration.
+ String filterExpiresAtLte = "filterExpiresAtLte_example"; // String | Expires at or before (ISO 8601)
+ String filterLastUsedAtGt = "filterLastUsedAtGt_example"; // String | Last used after (ISO 8601)
+ String filterLastUsedAtGte = "filterLastUsedAtGte_example"; // String | Last used at or after (ISO 8601)
+ String filterLastUsedAtLt = "filterLastUsedAtLt_example"; // String | Last used before (ISO 8601)
+ String filterLastUsedAtLte = "filterLastUsedAtLte_example"; // String | Last used at or before (ISO 8601)
+ String sort = "sort_example"; // String | Sort by field. Prefix with - for descending (e.g., -created_at, expires_at)
+ try {
+ ApiKeyList result = apiInstance.listApiKeys(include, pageNumber, pageSize, filterKind, filterSearch, filterName, filterUserId, filterGroupIds, filterRoleId, filterActive, filterExpired, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterExpiresAtGt, filterExpiresAtGte, filterExpiresAtLt, filterExpiresAtLte, filterLastUsedAtGt, filterLastUsedAtGte, filterLastUsedAtLt, filterLastUsedAtLte, sort);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ApiKeysApi#listApiKeys");
+ 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 list of relationships to include (role, on_call_role, created_by, groups) | [optional] |
+| **pageNumber** | **Integer**| | [optional] |
+| **pageSize** | **Integer**| | [optional] |
+| **filterKind** | **String**| Filter by API key kind: personal, team, organization | [optional] |
+| **filterSearch** | **String**| Search by name (case-insensitive partial match) | [optional] |
+| **filterName** | **String**| Filter by exact name | [optional] |
+| **filterUserId** | **String**| Filter by the user ID that owns the key | [optional] |
+| **filterGroupIds** | **String**| Filter team keys by group IDs (comma-separated) | [optional] |
+| **filterRoleId** | **String**| Filter by role ID | [optional] |
+| **filterActive** | **Boolean**| When true, return only non-expired keys | [optional] |
+| **filterExpired** | **Boolean**| When true, return only expired keys | [optional] |
+| **filterCreatedAtGt** | **String**| Created after (ISO 8601) | [optional] |
+| **filterCreatedAtGte** | **String**| Created at or after (ISO 8601) | [optional] |
+| **filterCreatedAtLt** | **String**| Created before (ISO 8601) | [optional] |
+| **filterCreatedAtLte** | **String**| Created at or before (ISO 8601) | [optional] |
+| **filterExpiresAtGt** | **String**| Expires after (ISO 8601) | [optional] |
+| **filterExpiresAtGte** | **String**| Expires at or after (ISO 8601) | [optional] |
+| **filterExpiresAtLt** | **String**| Expires before (ISO 8601). Useful for finding keys approaching expiration. | [optional] |
+| **filterExpiresAtLte** | **String**| Expires at or before (ISO 8601) | [optional] |
+| **filterLastUsedAtGt** | **String**| Last used after (ISO 8601) | [optional] |
+| **filterLastUsedAtGte** | **String**| Last used at or after (ISO 8601) | [optional] |
+| **filterLastUsedAtLt** | **String**| Last used before (ISO 8601) | [optional] |
+| **filterLastUsedAtLte** | **String**| Last used at or before (ISO 8601) | [optional] |
+| **sort** | **String**| Sort by field. Prefix with - for descending (e.g., -created_at, expires_at) | [optional] |
+
+### Return type
+
+[**ApiKeyList**](ApiKeyList.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 | - |
+| **401** | responds with unauthorized for invalid token | - |
+
+
+# **rotateApiKey**
+> ApiKeyWithTokenResponse rotateApiKey(id, rotateApiKey)
+
+Rotate an API key
+
+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.
+
+### 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.ApiKeysApi;
+
+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");
+
+ ApiKeysApi apiInstance = new ApiKeysApi(defaultClient);
+ String id = "id_example"; // String |
+ RotateApiKey rotateApiKey = new RotateApiKey(); // RotateApiKey |
+ try {
+ ApiKeyWithTokenResponse result = apiInstance.rotateApiKey(id, rotateApiKey);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ApiKeysApi#rotateApiKey");
+ 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**| | |
+| **rotateApiKey** | [**RotateApiKey**](RotateApiKey.md)| | [optional] |
+
+### Return type
+
+[**ApiKeyWithTokenResponse**](ApiKeyWithTokenResponse.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** | API key rotated | - |
+| **404** | API key not found | - |
+
+
+# **updateApiKey**
+> ApiKeyResponse updateApiKey(id, updateApiKey)
+
+Update an API key
+
+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.
+
+### 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.ApiKeysApi;
+
+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");
+
+ ApiKeysApi apiInstance = new ApiKeysApi(defaultClient);
+ UUID id = UUID.randomUUID(); // UUID |
+ UpdateApiKey updateApiKey = new UpdateApiKey(); // UpdateApiKey |
+ try {
+ ApiKeyResponse result = apiInstance.updateApiKey(id, updateApiKey);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ApiKeysApi#updateApiKey");
+ 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**| | |
+| **updateApiKey** | [**UpdateApiKey**](UpdateApiKey.md)| | |
+
+### Return type
+
+[**ApiKeyResponse**](ApiKeyResponse.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** | API key updated | - |
+| **404** | API key not found | - |
+
diff --git a/docs/BuiltinField.md b/docs/BuiltinField.md
new file mode 100644
index 00000000..6af57f40
--- /dev/null
+++ b/docs/BuiltinField.md
@@ -0,0 +1,22 @@
+
+
+# BuiltinField
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**fieldSource** | [**FieldSourceEnum**](#FieldSourceEnum) | | |
+|**fieldKey** | **String** | Key identifying the builtin field | |
+
+
+
+## Enum: FieldSourceEnum
+
+| Name | Value |
+|---- | -----|
+| BUILTIN | "builtin" |
+
+
+
diff --git a/docs/CatalogChecklistTemplate.md b/docs/CatalogChecklistTemplate.md
new file mode 100644
index 00000000..8738e934
--- /dev/null
+++ b/docs/CatalogChecklistTemplate.md
@@ -0,0 +1,45 @@
+
+
+# CatalogChecklistTemplate
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**name** | **String** | The name of the checklist template | |
+|**slug** | **String** | The slug of the checklist template | [optional] |
+|**description** | **String** | The description of the checklist template | [optional] |
+|**catalogType** | [**CatalogTypeEnum**](#CatalogTypeEnum) | The catalog type | |
+|**scopeType** | [**ScopeTypeEnum**](#ScopeTypeEnum) | The scope type | |
+|**scopeId** | **String** | The scope ID | |
+|**createdAt** | **String** | Date of creation | |
+|**updatedAt** | **String** | Date of last update | |
+|**fields** | [**List<CatalogChecklistTemplateFieldsInner>**](CatalogChecklistTemplateFieldsInner.md) | Template fields in position order | [optional] |
+|**owners** | [**List<CatalogChecklistTemplateOwnersInner>**](CatalogChecklistTemplateOwnersInner.md) | Template owners | [optional] |
+
+
+
+## Enum: CatalogTypeEnum
+
+| Name | Value |
+|---- | -----|
+| SERVICE | "Service" |
+| FUNCTIONALITY | "Functionality" |
+| ENVIRONMENT | "Environment" |
+| GROUP | "Group" |
+| CAUSE | "Cause" |
+| INCIDENT_TYPE | "IncidentType" |
+| CATALOG | "Catalog" |
+
+
+
+## Enum: ScopeTypeEnum
+
+| Name | Value |
+|---- | -----|
+| TEAM | "Team" |
+| CATALOG | "Catalog" |
+
+
+
diff --git a/docs/CatalogChecklistTemplateFieldsInner.md b/docs/CatalogChecklistTemplateFieldsInner.md
new file mode 100644
index 00000000..62cea492
--- /dev/null
+++ b/docs/CatalogChecklistTemplateFieldsInner.md
@@ -0,0 +1,24 @@
+
+
+# CatalogChecklistTemplateFieldsInner
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**fieldSource** | [**FieldSourceEnum**](#FieldSourceEnum) | Source of the field | [optional] |
+|**fieldKey** | **String** | Key identifying the field | [optional] |
+|**catalogPropertyId** | **String** | ID of the catalog property for custom fields | [optional] |
+
+
+
+## Enum: FieldSourceEnum
+
+| Name | Value |
+|---- | -----|
+| BUILTIN | "builtin" |
+| CUSTOM | "custom" |
+
+
+
diff --git a/docs/CatalogChecklistTemplateList.md b/docs/CatalogChecklistTemplateList.md
new file mode 100644
index 00000000..d66b6a53
--- /dev/null
+++ b/docs/CatalogChecklistTemplateList.md
@@ -0,0 +1,15 @@
+
+
+# CatalogChecklistTemplateList
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**List<CatalogChecklistTemplateResponseData>**](CatalogChecklistTemplateResponseData.md) | | |
+|**links** | [**Links**](Links.md) | | [optional] |
+|**meta** | [**Meta**](Meta.md) | | [optional] |
+
+
+
diff --git a/docs/CatalogChecklistTemplateOwnersInner.md b/docs/CatalogChecklistTemplateOwnersInner.md
new file mode 100644
index 00000000..bbc293f9
--- /dev/null
+++ b/docs/CatalogChecklistTemplateOwnersInner.md
@@ -0,0 +1,23 @@
+
+
+# CatalogChecklistTemplateOwnersInner
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | User ID for user owners, or field key for field owners | [optional] |
+|**type** | [**TypeEnum**](#TypeEnum) | Type of owner | [optional] |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| FIELD | "field" |
+| USER | "user" |
+
+
+
diff --git a/docs/CatalogChecklistTemplateResponse.md b/docs/CatalogChecklistTemplateResponse.md
new file mode 100644
index 00000000..e9311087
--- /dev/null
+++ b/docs/CatalogChecklistTemplateResponse.md
@@ -0,0 +1,13 @@
+
+
+# CatalogChecklistTemplateResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**CatalogChecklistTemplateResponseData**](CatalogChecklistTemplateResponseData.md) | | |
+
+
+
diff --git a/docs/CatalogChecklistTemplateResponseData.md b/docs/CatalogChecklistTemplateResponseData.md
new file mode 100644
index 00000000..a6418664
--- /dev/null
+++ b/docs/CatalogChecklistTemplateResponseData.md
@@ -0,0 +1,23 @@
+
+
+# CatalogChecklistTemplateResponseData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | Unique ID of the checklist template | |
+|**type** | [**TypeEnum**](#TypeEnum) | | |
+|**attributes** | [**CatalogChecklistTemplate**](CatalogChecklistTemplate.md) | | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| CATALOG_CHECKLIST_TEMPLATES | "catalog_checklist_templates" |
+
+
+
diff --git a/docs/CatalogChecklistTemplatesApi.md b/docs/CatalogChecklistTemplatesApi.md
new file mode 100644
index 00000000..fad71a9d
--- /dev/null
+++ b/docs/CatalogChecklistTemplatesApi.md
@@ -0,0 +1,445 @@
+# CatalogChecklistTemplatesApi
+
+All URIs are relative to *https://api.rootly.com*
+
+| Method | HTTP request | Description |
+|------------- | ------------- | -------------|
+| [**createCatalogChecklistTemplate**](CatalogChecklistTemplatesApi.md#createCatalogChecklistTemplate) | **POST** /v1/catalog_checklist_templates | Creates a catalog checklist template |
+| [**deleteCatalogChecklistTemplate**](CatalogChecklistTemplatesApi.md#deleteCatalogChecklistTemplate) | **DELETE** /v1/catalog_checklist_templates/{id} | Delete a catalog checklist template |
+| [**getCatalogChecklistTemplate**](CatalogChecklistTemplatesApi.md#getCatalogChecklistTemplate) | **GET** /v1/catalog_checklist_templates/{id} | Retrieves a catalog checklist template |
+| [**listCatalogChecklistTemplates**](CatalogChecklistTemplatesApi.md#listCatalogChecklistTemplates) | **GET** /v1/catalog_checklist_templates | List catalog checklist templates |
+| [**triggerCatalogChecklistTemplate**](CatalogChecklistTemplatesApi.md#triggerCatalogChecklistTemplate) | **POST** /v1/catalog_checklist_templates/{id}/trigger | Trigger an audit for a catalog checklist template |
+| [**updateCatalogChecklistTemplate**](CatalogChecklistTemplatesApi.md#updateCatalogChecklistTemplate) | **PUT** /v1/catalog_checklist_templates/{id} | Update a catalog checklist template |
+
+
+
+# **createCatalogChecklistTemplate**
+> CatalogChecklistTemplateResponse createCatalogChecklistTemplate(newCatalogChecklistTemplate)
+
+Creates a catalog checklist template
+
+Creates a new catalog checklist template
+
+### 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.CatalogChecklistTemplatesApi;
+
+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");
+
+ CatalogChecklistTemplatesApi apiInstance = new CatalogChecklistTemplatesApi(defaultClient);
+ NewCatalogChecklistTemplate newCatalogChecklistTemplate = new NewCatalogChecklistTemplate(); // NewCatalogChecklistTemplate |
+ try {
+ CatalogChecklistTemplateResponse result = apiInstance.createCatalogChecklistTemplate(newCatalogChecklistTemplate);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CatalogChecklistTemplatesApi#createCatalogChecklistTemplate");
+ 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 |
+|------------- | ------------- | ------------- | -------------|
+| **newCatalogChecklistTemplate** | [**NewCatalogChecklistTemplate**](NewCatalogChecklistTemplate.md)| | |
+
+### Return type
+
+[**CatalogChecklistTemplateResponse**](CatalogChecklistTemplateResponse.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** | ignores user-provided field_key for custom fields | - |
+| **422** | returns 422 when scope_type is missing for Catalog scope_id | - |
+| **401** | responds with unauthorized for invalid token | - |
+
+
+# **deleteCatalogChecklistTemplate**
+> CatalogChecklistTemplateResponse deleteCatalogChecklistTemplate(id)
+
+Delete a catalog checklist template
+
+Delete a specific catalog checklist template 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.CatalogChecklistTemplatesApi;
+
+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");
+
+ CatalogChecklistTemplatesApi apiInstance = new CatalogChecklistTemplatesApi(defaultClient);
+ GetAlertFieldIdParameter id = new GetAlertFieldIdParameter(); // GetAlertFieldIdParameter |
+ try {
+ CatalogChecklistTemplateResponse result = apiInstance.deleteCatalogChecklistTemplate(id);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CatalogChecklistTemplatesApi#deleteCatalogChecklistTemplate");
+ 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
+
+[**CatalogChecklistTemplateResponse**](CatalogChecklistTemplateResponse.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** | catalog checklist template deleted | - |
+| **404** | catalog checklist template not found | - |
+
+
+# **getCatalogChecklistTemplate**
+> CatalogChecklistTemplateResponse getCatalogChecklistTemplate(id)
+
+Retrieves a catalog checklist template
+
+Retrieves a specific catalog checklist template 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.CatalogChecklistTemplatesApi;
+
+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");
+
+ CatalogChecklistTemplatesApi apiInstance = new CatalogChecklistTemplatesApi(defaultClient);
+ GetAlertFieldIdParameter id = new GetAlertFieldIdParameter(); // GetAlertFieldIdParameter |
+ try {
+ CatalogChecklistTemplateResponse result = apiInstance.getCatalogChecklistTemplate(id);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CatalogChecklistTemplatesApi#getCatalogChecklistTemplate");
+ 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
+
+[**CatalogChecklistTemplateResponse**](CatalogChecklistTemplateResponse.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** | catalog checklist template found by slug | - |
+| **404** | resource not found for another team | - |
+
+
+# **listCatalogChecklistTemplates**
+> CatalogChecklistTemplateList listCatalogChecklistTemplates(include, sort, pageNumber, pageSize, filterName, filterSlug, filterCatalogType, filterScopeType, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte)
+
+List catalog checklist templates
+
+List catalog checklist templates
+
+### 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.CatalogChecklistTemplatesApi;
+
+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");
+
+ CatalogChecklistTemplatesApi apiInstance = new CatalogChecklistTemplatesApi(defaultClient);
+ String include = "template_fields"; // String | comma separated if needed. eg: template_fields,template_owners
+ String sort = "created_at"; // String | comma separated if needed. eg: created_at,updated_at
+ Integer pageNumber = 56; // Integer |
+ Integer pageSize = 56; // Integer |
+ String filterName = "filterName_example"; // String |
+ String filterSlug = "filterSlug_example"; // String |
+ String filterCatalogType = "filterCatalogType_example"; // String |
+ String filterScopeType = "filterScopeType_example"; // String |
+ String filterCreatedAtGt = "filterCreatedAtGt_example"; // String |
+ String filterCreatedAtGte = "filterCreatedAtGte_example"; // String |
+ String filterCreatedAtLt = "filterCreatedAtLt_example"; // String |
+ String filterCreatedAtLte = "filterCreatedAtLte_example"; // String |
+ try {
+ CatalogChecklistTemplateList result = apiInstance.listCatalogChecklistTemplates(include, sort, pageNumber, pageSize, filterName, filterSlug, filterCatalogType, filterScopeType, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CatalogChecklistTemplatesApi#listCatalogChecklistTemplates");
+ 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: template_fields,template_owners | [optional] [enum: template_fields, template_owners] |
+| **sort** | **String**| comma separated if needed. eg: created_at,updated_at | [optional] [enum: created_at, -created_at, updated_at, -updated_at, name, -name] |
+| **pageNumber** | **Integer**| | [optional] |
+| **pageSize** | **Integer**| | [optional] |
+| **filterName** | **String**| | [optional] |
+| **filterSlug** | **String**| | [optional] |
+| **filterCatalogType** | **String**| | [optional] |
+| **filterScopeType** | **String**| | [optional] |
+| **filterCreatedAtGt** | **String**| | [optional] |
+| **filterCreatedAtGte** | **String**| | [optional] |
+| **filterCreatedAtLt** | **String**| | [optional] |
+| **filterCreatedAtLte** | **String**| | [optional] |
+
+### Return type
+
+[**CatalogChecklistTemplateList**](CatalogChecklistTemplateList.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** | returns empty list for another team | - |
+
+
+# **triggerCatalogChecklistTemplate**
+> triggerCatalogChecklistTemplate(id)
+
+Trigger an audit for a catalog checklist template
+
+Triggers an audit for all applicable entities of the checklist template
+
+### 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.CatalogChecklistTemplatesApi;
+
+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");
+
+ CatalogChecklistTemplatesApi apiInstance = new CatalogChecklistTemplatesApi(defaultClient);
+ GetAlertFieldIdParameter id = new GetAlertFieldIdParameter(); // GetAlertFieldIdParameter |
+ try {
+ apiInstance.triggerCatalogChecklistTemplate(id);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CatalogChecklistTemplatesApi#triggerCatalogChecklistTemplate");
+ 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
+
+null (empty response body)
+
+### 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 |
+|-------------|-------------|------------------|
+| **202** | audit triggered | - |
+| **404** | resource not found for another team | - |
+
+
+# **updateCatalogChecklistTemplate**
+> CatalogChecklistTemplateResponse updateCatalogChecklistTemplate(id, updateCatalogChecklistTemplate)
+
+Update a catalog checklist template
+
+Update a specific catalog checklist template 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.CatalogChecklistTemplatesApi;
+
+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");
+
+ CatalogChecklistTemplatesApi apiInstance = new CatalogChecklistTemplatesApi(defaultClient);
+ GetAlertFieldIdParameter id = new GetAlertFieldIdParameter(); // GetAlertFieldIdParameter |
+ UpdateCatalogChecklistTemplate updateCatalogChecklistTemplate = new UpdateCatalogChecklistTemplate(); // UpdateCatalogChecklistTemplate |
+ try {
+ CatalogChecklistTemplateResponse result = apiInstance.updateCatalogChecklistTemplate(id, updateCatalogChecklistTemplate);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CatalogChecklistTemplatesApi#updateCatalogChecklistTemplate");
+ 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)| | |
+| **updateCatalogChecklistTemplate** | [**UpdateCatalogChecklistTemplate**](UpdateCatalogChecklistTemplate.md)| | |
+
+### Return type
+
+[**CatalogChecklistTemplateResponse**](CatalogChecklistTemplateResponse.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 user-provided field_key for custom fields on update | - |
+| **422** | rejects duplicate custom fields on update | - |
+
diff --git a/docs/CatalogEntityChecklist.md b/docs/CatalogEntityChecklist.md
new file mode 100644
index 00000000..d3109fd1
--- /dev/null
+++ b/docs/CatalogEntityChecklist.md
@@ -0,0 +1,48 @@
+
+
+# CatalogEntityChecklist
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**catalogChecklistTemplateId** | **String** | The ID of the checklist template | |
+|**auditableType** | [**AuditableTypeEnum**](#AuditableTypeEnum) | The type of the auditable entity | |
+|**auditableId** | **String** | The ID of the auditable entity | |
+|**status** | [**StatusEnum**](#StatusEnum) | The status of the checklist | |
+|**startedAt** | **String** | When the checklist was started | [optional] |
+|**completedAt** | **String** | When the checklist was completed | [optional] |
+|**completedByUserId** | **String** | The ID of the user who completed the checklist | [optional] |
+|**createdAt** | **String** | Date of creation | |
+|**updatedAt** | **String** | Date of last update | |
+|**checklistFields** | [**List<CatalogEntityChecklistChecklistFieldsInner>**](CatalogEntityChecklistChecklistFieldsInner.md) | Checklist fields | [optional] |
+|**checklistOwners** | [**List<CatalogEntityChecklistChecklistOwnersInner>**](CatalogEntityChecklistChecklistOwnersInner.md) | Checklist owners | [optional] |
+
+
+
+## Enum: AuditableTypeEnum
+
+| Name | Value |
+|---- | -----|
+| SERVICE | "Service" |
+| FUNCTIONALITY | "Functionality" |
+| ENVIRONMENT | "Environment" |
+| GROUP | "Group" |
+| CAUSE | "Cause" |
+| INCIDENT_TYPE | "IncidentType" |
+| CATALOG_ENTITY | "CatalogEntity" |
+
+
+
+## Enum: StatusEnum
+
+| Name | Value |
+|---- | -----|
+| TRIGGERED | "triggered" |
+| IN_PROGRESS | "in_progress" |
+| COMPLETED | "completed" |
+| CANCELLED | "cancelled" |
+
+
+
diff --git a/docs/CatalogEntityChecklistChecklistFieldsInner.md b/docs/CatalogEntityChecklistChecklistFieldsInner.md
new file mode 100644
index 00000000..b19e9a6a
--- /dev/null
+++ b/docs/CatalogEntityChecklistChecklistFieldsInner.md
@@ -0,0 +1,13 @@
+
+
+# CatalogEntityChecklistChecklistFieldsInner
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**CatalogEntityChecklistChecklistFieldsInnerData**](CatalogEntityChecklistChecklistFieldsInnerData.md) | | [optional] |
+
+
+
diff --git a/docs/CatalogEntityChecklistChecklistFieldsInnerData.md b/docs/CatalogEntityChecklistChecklistFieldsInnerData.md
new file mode 100644
index 00000000..ca7bf157
--- /dev/null
+++ b/docs/CatalogEntityChecklistChecklistFieldsInnerData.md
@@ -0,0 +1,23 @@
+
+
+# CatalogEntityChecklistChecklistFieldsInnerData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | ID of the checklist field | [optional] |
+|**type** | [**TypeEnum**](#TypeEnum) | | [optional] |
+|**attributes** | [**CatalogEntityChecklistChecklistFieldsInnerDataAttributes**](CatalogEntityChecklistChecklistFieldsInnerDataAttributes.md) | | [optional] |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| CATALOG_ENTITY_CHECKLIST_FIELDS | "catalog_entity_checklist_fields" |
+
+
+
diff --git a/docs/CatalogEntityChecklistChecklistFieldsInnerDataAttributes.md b/docs/CatalogEntityChecklistChecklistFieldsInnerDataAttributes.md
new file mode 100644
index 00000000..5359ab86
--- /dev/null
+++ b/docs/CatalogEntityChecklistChecklistFieldsInnerDataAttributes.md
@@ -0,0 +1,21 @@
+
+
+# CatalogEntityChecklistChecklistFieldsInnerDataAttributes
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**catalogEntityChecklistId** | **String** | The ID of the parent checklist | [optional] |
+|**catalogChecklistTemplateFieldId** | **String** | The ID of the template field | [optional] |
+|**fieldKey** | **String** | The field key | [optional] |
+|**checked** | **Boolean** | Whether the field is checked | [optional] |
+|**valueSnapshot** | **Object** | The value snapshot at time of checking | [optional] |
+|**completedByUserId** | **String** | The ID of the user who checked the field | [optional] |
+|**completedAt** | **String** | When the field was checked | [optional] |
+|**createdAt** | **String** | Date of creation | [optional] |
+|**updatedAt** | **String** | Date of last update | [optional] |
+
+
+
diff --git a/docs/CatalogEntityChecklistChecklistOwnersInner.md b/docs/CatalogEntityChecklistChecklistOwnersInner.md
new file mode 100644
index 00000000..3acdda0a
--- /dev/null
+++ b/docs/CatalogEntityChecklistChecklistOwnersInner.md
@@ -0,0 +1,13 @@
+
+
+# CatalogEntityChecklistChecklistOwnersInner
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**CatalogEntityChecklistChecklistOwnersInnerData**](CatalogEntityChecklistChecklistOwnersInnerData.md) | | [optional] |
+
+
+
diff --git a/docs/CatalogEntityChecklistChecklistOwnersInnerData.md b/docs/CatalogEntityChecklistChecklistOwnersInnerData.md
new file mode 100644
index 00000000..4bd40ebb
--- /dev/null
+++ b/docs/CatalogEntityChecklistChecklistOwnersInnerData.md
@@ -0,0 +1,23 @@
+
+
+# CatalogEntityChecklistChecklistOwnersInnerData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | ID of the checklist owner | [optional] |
+|**type** | [**TypeEnum**](#TypeEnum) | | [optional] |
+|**attributes** | [**CatalogEntityChecklistChecklistOwnersInnerDataAttributes**](CatalogEntityChecklistChecklistOwnersInnerDataAttributes.md) | | [optional] |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| CATALOG_ENTITY_CHECKLIST_OWNERS | "catalog_entity_checklist_owners" |
+
+
+
diff --git a/docs/CatalogEntityChecklistChecklistOwnersInnerDataAttributes.md b/docs/CatalogEntityChecklistChecklistOwnersInnerDataAttributes.md
new file mode 100644
index 00000000..11d9cf4b
--- /dev/null
+++ b/docs/CatalogEntityChecklistChecklistOwnersInnerDataAttributes.md
@@ -0,0 +1,16 @@
+
+
+# CatalogEntityChecklistChecklistOwnersInnerDataAttributes
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**catalogEntityChecklistId** | **String** | The ID of the parent checklist | [optional] |
+|**ownerUserId** | **String** | The ID of the owner user | [optional] |
+|**createdAt** | **String** | Date of creation | [optional] |
+|**updatedAt** | **String** | Date of last update | [optional] |
+
+
+
diff --git a/docs/CatalogEntityChecklistList.md b/docs/CatalogEntityChecklistList.md
new file mode 100644
index 00000000..0e368d72
--- /dev/null
+++ b/docs/CatalogEntityChecklistList.md
@@ -0,0 +1,15 @@
+
+
+# CatalogEntityChecklistList
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**List<CatalogEntityChecklistResponseData>**](CatalogEntityChecklistResponseData.md) | | |
+|**links** | [**Links**](Links.md) | | [optional] |
+|**meta** | [**Meta**](Meta.md) | | [optional] |
+
+
+
diff --git a/docs/CatalogEntityChecklistResponse.md b/docs/CatalogEntityChecklistResponse.md
new file mode 100644
index 00000000..2df8b92e
--- /dev/null
+++ b/docs/CatalogEntityChecklistResponse.md
@@ -0,0 +1,13 @@
+
+
+# CatalogEntityChecklistResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**CatalogEntityChecklistResponseData**](CatalogEntityChecklistResponseData.md) | | |
+
+
+
diff --git a/docs/CatalogEntityChecklistResponseData.md b/docs/CatalogEntityChecklistResponseData.md
new file mode 100644
index 00000000..d0ca6d5e
--- /dev/null
+++ b/docs/CatalogEntityChecklistResponseData.md
@@ -0,0 +1,23 @@
+
+
+# CatalogEntityChecklistResponseData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | Unique ID of the entity checklist | |
+|**type** | [**TypeEnum**](#TypeEnum) | | |
+|**attributes** | [**CatalogEntityChecklist**](CatalogEntityChecklist.md) | | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| CATALOG_ENTITY_CHECKLISTS | "catalog_entity_checklists" |
+
+
+
diff --git a/docs/CatalogEntityChecklistsApi.md b/docs/CatalogEntityChecklistsApi.md
new file mode 100644
index 00000000..816435de
--- /dev/null
+++ b/docs/CatalogEntityChecklistsApi.md
@@ -0,0 +1,163 @@
+# CatalogEntityChecklistsApi
+
+All URIs are relative to *https://api.rootly.com*
+
+| Method | HTTP request | Description |
+|------------- | ------------- | -------------|
+| [**getCatalogEntityChecklist**](CatalogEntityChecklistsApi.md#getCatalogEntityChecklist) | **GET** /v1/catalog_entity_checklists/{id} | Retrieves a catalog entity checklist |
+| [**listCatalogEntityChecklists**](CatalogEntityChecklistsApi.md#listCatalogEntityChecklists) | **GET** /v1/catalog_entity_checklists | List catalog entity checklists |
+
+
+
+# **getCatalogEntityChecklist**
+> CatalogEntityChecklistResponse getCatalogEntityChecklist(id)
+
+Retrieves a catalog entity checklist
+
+Retrieves a specific catalog entity checklist 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.CatalogEntityChecklistsApi;
+
+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");
+
+ CatalogEntityChecklistsApi apiInstance = new CatalogEntityChecklistsApi(defaultClient);
+ UUID id = UUID.randomUUID(); // UUID |
+ try {
+ CatalogEntityChecklistResponse result = apiInstance.getCatalogEntityChecklist(id);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CatalogEntityChecklistsApi#getCatalogEntityChecklist");
+ 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**| | |
+
+### Return type
+
+[**CatalogEntityChecklistResponse**](CatalogEntityChecklistResponse.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** | catalog entity checklist found | - |
+| **404** | resource not found for another team | - |
+
+
+# **listCatalogEntityChecklists**
+> CatalogEntityChecklistList listCatalogEntityChecklists(pageNumber, pageSize, filterStatus, filterCatalogChecklistTemplateId, filterAuditableType, filterAuditableId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte)
+
+List catalog entity checklists
+
+List catalog entity checklists
+
+### 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.CatalogEntityChecklistsApi;
+
+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");
+
+ CatalogEntityChecklistsApi apiInstance = new CatalogEntityChecklistsApi(defaultClient);
+ Integer pageNumber = 56; // Integer |
+ Integer pageSize = 56; // Integer |
+ String filterStatus = "filterStatus_example"; // String |
+ String filterCatalogChecklistTemplateId = "filterCatalogChecklistTemplateId_example"; // String |
+ String filterAuditableType = "filterAuditableType_example"; // String |
+ String filterAuditableId = "filterAuditableId_example"; // String |
+ String filterCreatedAtGt = "filterCreatedAtGt_example"; // String |
+ String filterCreatedAtGte = "filterCreatedAtGte_example"; // String |
+ String filterCreatedAtLt = "filterCreatedAtLt_example"; // String |
+ String filterCreatedAtLte = "filterCreatedAtLte_example"; // String |
+ try {
+ CatalogEntityChecklistList result = apiInstance.listCatalogEntityChecklists(pageNumber, pageSize, filterStatus, filterCatalogChecklistTemplateId, filterAuditableType, filterAuditableId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CatalogEntityChecklistsApi#listCatalogEntityChecklists");
+ 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] |
+| **filterStatus** | **String**| | [optional] |
+| **filterCatalogChecklistTemplateId** | **String**| | [optional] |
+| **filterAuditableType** | **String**| | [optional] |
+| **filterAuditableId** | **String**| | [optional] |
+| **filterCreatedAtGt** | **String**| | [optional] |
+| **filterCreatedAtGte** | **String**| | [optional] |
+| **filterCreatedAtLt** | **String**| | [optional] |
+| **filterCreatedAtLte** | **String**| | [optional] |
+
+### Return type
+
+[**CatalogEntityChecklistList**](CatalogEntityChecklistList.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** | returns empty list for another team | - |
+
diff --git a/docs/CatalogPropertiesApi.md b/docs/CatalogPropertiesApi.md
new file mode 100644
index 00000000..58e902f7
--- /dev/null
+++ b/docs/CatalogPropertiesApi.md
@@ -0,0 +1,347 @@
+# CatalogPropertiesApi
+
+All URIs are relative to *https://api.rootly.com*
+
+| Method | HTTP request | Description |
+|------------- | ------------- | -------------|
+| [**createCatalogProperty**](CatalogPropertiesApi.md#createCatalogProperty) | **POST** /v1/catalogs/{catalog_id}/properties | Creates a Catalog Property (alias for field) |
+| [**deleteCatalogProperty**](CatalogPropertiesApi.md#deleteCatalogProperty) | **DELETE** /v1/catalog_properties/{id} | Delete a catalog_property |
+| [**getCatalogProperty**](CatalogPropertiesApi.md#getCatalogProperty) | **GET** /v1/catalog_properties/{id} | Retrieves a Catalog Property (alias for field) |
+| [**listCatalogProperties**](CatalogPropertiesApi.md#listCatalogProperties) | **GET** /v1/catalogs/{catalog_id}/properties | List Catalog Properties (alias for fields) |
+| [**updateCatalogProperty**](CatalogPropertiesApi.md#updateCatalogProperty) | **PUT** /v1/catalog_properties/{id} | Update a catalog_property (alias for field) |
+
+
+
+# **createCatalogProperty**
+> createCatalogProperty(catalogId, newCatalogField)
+
+Creates a Catalog Property (alias for field)
+
+Creates a new Catalog Property - returns catalog_properties type
+
+### 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.CatalogPropertiesApi;
+
+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");
+
+ CatalogPropertiesApi apiInstance = new CatalogPropertiesApi(defaultClient);
+ String catalogId = "catalogId_example"; // String |
+ NewCatalogField newCatalogField = new NewCatalogField(); // NewCatalogField |
+ try {
+ apiInstance.createCatalogProperty(catalogId, newCatalogField);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CatalogPropertiesApi#createCatalogProperty");
+ 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**| | |
+| **newCatalogField** | [**NewCatalogField**](NewCatalogField.md)| | |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+[bearer_auth](../README.md#bearer_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.api+json
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **201** | catalog_property created | - |
+
+
+# **deleteCatalogProperty**
+> deleteCatalogProperty(id)
+
+Delete a catalog_property
+
+Delete a specific catalog_property by id - returns catalog_properties type
+
+### 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.CatalogPropertiesApi;
+
+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");
+
+ CatalogPropertiesApi apiInstance = new CatalogPropertiesApi(defaultClient);
+ String id = "id_example"; // String |
+ try {
+ apiInstance.deleteCatalogProperty(id);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CatalogPropertiesApi#deleteCatalogProperty");
+ 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_property deleted | - |
+
+
+# **getCatalogProperty**
+> getCatalogProperty(id)
+
+Retrieves a Catalog Property (alias for field)
+
+Retrieves a specific Catalog Property by id - returns catalog_properties type
+
+### 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.CatalogPropertiesApi;
+
+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");
+
+ CatalogPropertiesApi apiInstance = new CatalogPropertiesApi(defaultClient);
+ String id = "id_example"; // String |
+ try {
+ apiInstance.getCatalogProperty(id);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CatalogPropertiesApi#getCatalogProperty");
+ 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_property found | - |
+
+
+# **listCatalogProperties**
+> listCatalogProperties(catalogId)
+
+List Catalog Properties (alias for fields)
+
+List Catalog Properties - returns catalog_properties type
+
+### 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.CatalogPropertiesApi;
+
+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");
+
+ CatalogPropertiesApi apiInstance = new CatalogPropertiesApi(defaultClient);
+ String catalogId = "catalogId_example"; // String |
+ try {
+ apiInstance.listCatalogProperties(catalogId);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CatalogPropertiesApi#listCatalogProperties");
+ 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**| | |
+
+### 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** | success with catalog_properties type | - |
+
+
+# **updateCatalogProperty**
+> updateCatalogProperty(id, updateCatalogField)
+
+Update a catalog_property (alias for field)
+
+Update a specific catalog_property by id - returns catalog_properties type
+
+### 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.CatalogPropertiesApi;
+
+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");
+
+ CatalogPropertiesApi apiInstance = new CatalogPropertiesApi(defaultClient);
+ String id = "id_example"; // String |
+ UpdateCatalogField updateCatalogField = new UpdateCatalogField(); // UpdateCatalogField |
+ try {
+ apiInstance.updateCatalogProperty(id, updateCatalogField);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CatalogPropertiesApi#updateCatalogProperty");
+ 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**| | |
+| **updateCatalogField** | [**UpdateCatalogField**](UpdateCatalogField.md)| | |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+[bearer_auth](../README.md#bearer_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.api+json
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | catalog_property updated | - |
+
diff --git a/docs/CatalogProperty.md b/docs/CatalogProperty.md
new file mode 100644
index 00000000..72edacfd
--- /dev/null
+++ b/docs/CatalogProperty.md
@@ -0,0 +1,46 @@
+
+
+# CatalogProperty
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**catalogId** | **String** | | |
+|**name** | **String** | | |
+|**slug** | **String** | | [optional] |
+|**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] |
+|**createdAt** | **String** | | |
+|**updatedAt** | **String** | | |
+
+
+
+## Enum: KindEnum
+
+| Name | Value |
+|---- | -----|
+| TEXT | "text" |
+| REFERENCE | "reference" |
+
+
+
+## Enum: CatalogTypeEnum
+
+| Name | Value |
+|---- | -----|
+| CATALOG | "catalog" |
+| CAUSE | "cause" |
+| ENVIRONMENT | "environment" |
+| FUNCTIONALITY | "functionality" |
+| INCIDENT_TYPE | "incident_type" |
+| SERVICE | "service" |
+| TEAM | "team" |
+
+
+
diff --git a/docs/CatalogPropertyList.md b/docs/CatalogPropertyList.md
new file mode 100644
index 00000000..776dda39
--- /dev/null
+++ b/docs/CatalogPropertyList.md
@@ -0,0 +1,15 @@
+
+
+# CatalogPropertyList
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**List<CatalogPropertyResponseData>**](CatalogPropertyResponseData.md) | | |
+|**links** | [**Links**](Links.md) | | |
+|**meta** | [**Meta**](Meta.md) | | |
+
+
+
diff --git a/docs/CatalogPropertyResponse.md b/docs/CatalogPropertyResponse.md
new file mode 100644
index 00000000..ff236dc7
--- /dev/null
+++ b/docs/CatalogPropertyResponse.md
@@ -0,0 +1,13 @@
+
+
+# CatalogPropertyResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**CatalogPropertyResponseData**](CatalogPropertyResponseData.md) | | |
+
+
+
diff --git a/docs/CatalogPropertyResponseData.md b/docs/CatalogPropertyResponseData.md
new file mode 100644
index 00000000..136a8761
--- /dev/null
+++ b/docs/CatalogPropertyResponseData.md
@@ -0,0 +1,23 @@
+
+
+# CatalogPropertyResponseData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | Unique ID of the catalog_property | |
+|**type** | [**TypeEnum**](#TypeEnum) | | |
+|**attributes** | [**CatalogProperty**](CatalogProperty.md) | | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| CATALOG_PROPERTIES | "catalog_properties" |
+
+
+
diff --git a/docs/CommunicationsTemplateCommunicationTemplateStagesInnerData.md b/docs/CommunicationsTemplateCommunicationTemplateStagesInnerData.md
new file mode 100644
index 00000000..5336392f
--- /dev/null
+++ b/docs/CommunicationsTemplateCommunicationTemplateStagesInnerData.md
@@ -0,0 +1,23 @@
+
+
+# CommunicationsTemplateCommunicationTemplateStagesInnerData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | ID of the communication template stage | [optional] |
+|**type** | [**TypeEnum**](#TypeEnum) | | [optional] |
+|**attributes** | [**CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes**](CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes.md) | | [optional] |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| COMMUNICATIONS_TEMPLATE_STAGES | "communications_template_stages" |
+
+
+
diff --git a/docs/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes.md b/docs/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes.md
new file mode 100644
index 00000000..b2ed441e
--- /dev/null
+++ b/docs/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes.md
@@ -0,0 +1,20 @@
+
+
+# CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**emailBody** | **String** | Email body for the stage | [optional] |
+|**emailSubject** | **String** | Email subject for the stage | [optional] |
+|**slackContent** | **String** | Slack content for the stage | [optional] |
+|**smsContent** | **String** | SMS content for the stage | [optional] |
+|**createdAt** | **String** | Date of creation | [optional] |
+|**updatedAt** | **String** | Date of last update | [optional] |
+|**communicationStage** | [**CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage**](CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage.md) | | [optional] |
+|**communicationTemplate** | [**CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate**](CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate.md) | | [optional] |
+
+
+
diff --git a/docs/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage.md b/docs/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage.md
new file mode 100644
index 00000000..30c59c04
--- /dev/null
+++ b/docs/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage.md
@@ -0,0 +1,14 @@
+
+
+# CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | The communication stage ID | [optional] |
+|**name** | **String** | The communication stage name | [optional] |
+
+
+
diff --git a/docs/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate.md b/docs/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate.md
new file mode 100644
index 00000000..1ccaaa32
--- /dev/null
+++ b/docs/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate.md
@@ -0,0 +1,14 @@
+
+
+# CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | The communication template ID | [optional] |
+|**name** | **String** | The communication template name | [optional] |
+
+
+
diff --git a/docs/CreateEdgeConnectorActionRequest.md b/docs/CreateEdgeConnectorActionRequest.md
new file mode 100644
index 00000000..9c47a018
--- /dev/null
+++ b/docs/CreateEdgeConnectorActionRequest.md
@@ -0,0 +1,13 @@
+
+
+# CreateEdgeConnectorActionRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**action** | [**CreateEdgeConnectorActionRequestAction**](CreateEdgeConnectorActionRequestAction.md) | | [optional] |
+
+
+
diff --git a/docs/CreateEdgeConnectorActionRequestAction.md b/docs/CreateEdgeConnectorActionRequestAction.md
new file mode 100644
index 00000000..d8802ed2
--- /dev/null
+++ b/docs/CreateEdgeConnectorActionRequestAction.md
@@ -0,0 +1,24 @@
+
+
+# CreateEdgeConnectorActionRequestAction
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**name** | **String** | Action name | |
+|**actionType** | [**ActionTypeEnum**](#ActionTypeEnum) | Action type | |
+|**metadata** | [**CreateEdgeConnectorActionRequestActionMetadata**](CreateEdgeConnectorActionRequestActionMetadata.md) | | [optional] |
+
+
+
+## Enum: ActionTypeEnum
+
+| Name | Value |
+|---- | -----|
+| SCRIPT | "script" |
+| HTTP | "http" |
+
+
+
diff --git a/docs/CreateEdgeConnectorActionRequestActionMetadata.md b/docs/CreateEdgeConnectorActionRequestActionMetadata.md
new file mode 100644
index 00000000..71618afb
--- /dev/null
+++ b/docs/CreateEdgeConnectorActionRequestActionMetadata.md
@@ -0,0 +1,15 @@
+
+
+# CreateEdgeConnectorActionRequestActionMetadata
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**description** | **String** | | [optional] |
+|**timeout** | **Integer** | | [optional] |
+|**parameters** | [**List<CreateEdgeConnectorActionRequestActionMetadataParametersInner>**](CreateEdgeConnectorActionRequestActionMetadataParametersInner.md) | | [optional] |
+
+
+
diff --git a/docs/CreateEdgeConnectorActionRequestActionMetadataParametersInner.md b/docs/CreateEdgeConnectorActionRequestActionMetadataParametersInner.md
new file mode 100644
index 00000000..e19dbea2
--- /dev/null
+++ b/docs/CreateEdgeConnectorActionRequestActionMetadataParametersInner.md
@@ -0,0 +1,27 @@
+
+
+# CreateEdgeConnectorActionRequestActionMetadataParametersInner
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**name** | **String** | | [optional] |
+|**type** | [**TypeEnum**](#TypeEnum) | | [optional] |
+|**required** | **Boolean** | | [optional] |
+|**description** | **String** | | [optional] |
+|**options** | **List<String>** | | [optional] |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| STRING | "string" |
+| NUMBER | "number" |
+| BOOLEAN | "boolean" |
+
+
+
diff --git a/docs/CreateEdgeConnectorRequest.md b/docs/CreateEdgeConnectorRequest.md
new file mode 100644
index 00000000..d0628cca
--- /dev/null
+++ b/docs/CreateEdgeConnectorRequest.md
@@ -0,0 +1,13 @@
+
+
+# CreateEdgeConnectorRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**CreateEdgeConnectorRequestData**](CreateEdgeConnectorRequestData.md) | | |
+
+
+
diff --git a/docs/CreateEdgeConnectorRequestData.md b/docs/CreateEdgeConnectorRequestData.md
new file mode 100644
index 00000000..d1eabf25
--- /dev/null
+++ b/docs/CreateEdgeConnectorRequestData.md
@@ -0,0 +1,22 @@
+
+
+# CreateEdgeConnectorRequestData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | [**TypeEnum**](#TypeEnum) | | |
+|**attributes** | [**CreateEdgeConnectorRequestDataAttributes**](CreateEdgeConnectorRequestDataAttributes.md) | | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| EDGE_CONNECTORS | "edge_connectors" |
+
+
+
diff --git a/docs/CreateEdgeConnectorRequestDataAttributes.md b/docs/CreateEdgeConnectorRequestDataAttributes.md
new file mode 100644
index 00000000..123a9a45
--- /dev/null
+++ b/docs/CreateEdgeConnectorRequestDataAttributes.md
@@ -0,0 +1,25 @@
+
+
+# CreateEdgeConnectorRequestDataAttributes
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**name** | **String** | Connector name | |
+|**description** | **String** | Connector description | [optional] |
+|**status** | [**StatusEnum**](#StatusEnum) | Connector status | [optional] |
+|**subscriptions** | **List<String>** | Array of event types to subscribe to | [optional] |
+
+
+
+## Enum: StatusEnum
+
+| Name | Value |
+|---- | -----|
+| ACTIVE | "active" |
+| PAUSED | "paused" |
+
+
+
diff --git a/docs/CreateGithubIssueTaskParamsIssueType.md b/docs/CreateGithubIssueTaskParamsIssueType.md
new file mode 100644
index 00000000..f5fc5d5d
--- /dev/null
+++ b/docs/CreateGithubIssueTaskParamsIssueType.md
@@ -0,0 +1,15 @@
+
+
+# CreateGithubIssueTaskParamsIssueType
+
+The issue type
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | | [optional] |
+|**name** | **String** | | [optional] |
+
+
+
diff --git a/docs/CreateJsmopsAlertTaskParams.md b/docs/CreateJsmopsAlertTaskParams.md
new file mode 100644
index 00000000..7f99d120
--- /dev/null
+++ b/docs/CreateJsmopsAlertTaskParams.md
@@ -0,0 +1,43 @@
+
+
+# CreateJsmopsAlertTaskParams
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] |
+|**message** | **String** | Message of the alert | |
+|**description** | **String** | Description field of the alert that is generally used to provide a detailed information about the alert | [optional] |
+|**teams** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] |
+|**users** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] |
+|**schedules** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] |
+|**escalations** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] |
+|**priority** | [**PriorityEnum**](#PriorityEnum) | | [optional] |
+|**details** | **String** | Details payload. Can contain liquid markup and need to be valid JSON | [optional] |
+
+
+
+## Enum: TaskTypeEnum
+
+| Name | Value |
+|---- | -----|
+| CREATE_JSMOPS_ALERT | "create_jsmops_alert" |
+
+
+
+## Enum: PriorityEnum
+
+| Name | Value |
+|---- | -----|
+| P3 | "P3" |
+| P1 | "P1" |
+| P2 | "P2" |
+| P32 | "P3" |
+| P4 | "P4" |
+| P5 | "P5" |
+| AUTO | "auto" |
+
+
+
diff --git a/docs/EscalateAlert.md b/docs/EscalateAlert.md
new file mode 100644
index 00000000..a852156c
--- /dev/null
+++ b/docs/EscalateAlert.md
@@ -0,0 +1,13 @@
+
+
+# EscalateAlert
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**EscalateAlertData**](EscalateAlertData.md) | | [optional] |
+
+
+
diff --git a/docs/EscalateAlertData.md b/docs/EscalateAlertData.md
new file mode 100644
index 00000000..b823a796
--- /dev/null
+++ b/docs/EscalateAlertData.md
@@ -0,0 +1,22 @@
+
+
+# EscalateAlertData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | [**TypeEnum**](#TypeEnum) | | [optional] |
+|**attributes** | [**EscalateAlertDataAttributes**](EscalateAlertDataAttributes.md) | | [optional] |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| ALERTS | "alerts" |
+
+
+
diff --git a/docs/EscalateAlertDataAttributes.md b/docs/EscalateAlertDataAttributes.md
new file mode 100644
index 00000000..09cd42bf
--- /dev/null
+++ b/docs/EscalateAlertDataAttributes.md
@@ -0,0 +1,14 @@
+
+
+# EscalateAlertDataAttributes
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**escalationPolicyId** | **String** | 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. | [optional] |
+|**escalationPolicyLevel** | **Integer** | The escalation policy level to escalate to. If omitted, defaults to the next level (same EP) or level 1 (different EP). | [optional] |
+
+
+
diff --git a/docs/IncidentZoomMeetingGlobalDialInNumbersInner.md b/docs/IncidentZoomMeetingGlobalDialInNumbersInner.md
new file mode 100644
index 00000000..35059e08
--- /dev/null
+++ b/docs/IncidentZoomMeetingGlobalDialInNumbersInner.md
@@ -0,0 +1,17 @@
+
+
+# IncidentZoomMeetingGlobalDialInNumbersInner
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**country** | **String** | | [optional] |
+|**countryName** | **String** | | [optional] |
+|**city** | **String** | | [optional] |
+|**number** | **String** | | [optional] |
+|**type** | **String** | | [optional] |
+
+
+
diff --git a/docs/MeetingRecording.md b/docs/MeetingRecording.md
new file mode 100644
index 00000000..bcfb6962
--- /dev/null
+++ b/docs/MeetingRecording.md
@@ -0,0 +1,49 @@
+
+
+# MeetingRecording
+
+
+## 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] |
+|**hasVideo** | **Boolean** | Whether a video recording file is attached | [optional] |
+|**createdAt** | **OffsetDateTime** | When the recording session was created | |
+|**updatedAt** | **OffsetDateTime** | When the recording session was last updated | |
+
+
+
+## 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/MeetingRecordingList.md b/docs/MeetingRecordingList.md
new file mode 100644
index 00000000..5dc06479
--- /dev/null
+++ b/docs/MeetingRecordingList.md
@@ -0,0 +1,14 @@
+
+
+# MeetingRecordingList
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**List<MeetingRecordingListDataInner>**](MeetingRecordingListDataInner.md) | | |
+|**meta** | [**Meta**](Meta.md) | | [optional] |
+
+
+
diff --git a/docs/MeetingRecordingListDataInner.md b/docs/MeetingRecordingListDataInner.md
new file mode 100644
index 00000000..c7128239
--- /dev/null
+++ b/docs/MeetingRecordingListDataInner.md
@@ -0,0 +1,23 @@
+
+
+# MeetingRecordingListDataInner
+
+
+## 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/MeetingRecordingsApi.md b/docs/MeetingRecordingsApi.md
new file mode 100644
index 00000000..c4a89a12
--- /dev/null
+++ b/docs/MeetingRecordingsApi.md
@@ -0,0 +1,627 @@
+# MeetingRecordingsApi
+
+All URIs are relative to *https://api.rootly.com*
+
+| Method | HTTP request | Description |
+|------------- | ------------- | -------------|
+| [**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 |
+| [**getMeetingRecording**](MeetingRecordingsApi.md#getMeetingRecording) | **GET** /v1/meeting_recordings/{id} | Get a meeting recording |
+| [**leaveMeetingRecording**](MeetingRecordingsApi.md#leaveMeetingRecording) | **POST** /v1/meeting_recordings/{id}/leave | Leave a meeting call |
+| [**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 |
+| [**stopMeetingRecording**](MeetingRecordingsApi.md#stopMeetingRecording) | **POST** /v1/meeting_recordings/{id}/stop | Stop a meeting recording |
+
+
+
+# **createMeetingRecording**
+> createMeetingRecording(incidentId, platform)
+
+Create meeting recording
+
+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.
+
+### 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
+ String platform = "zoom"; // String | Meeting platform
+ try {
+ apiInstance.createMeetingRecording(incidentId, platform);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling MeetingRecordingsApi#createMeetingRecording");
+ 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 | |
+| **platform** | **String**| Meeting platform | [optional] [enum: zoom, google_meet, microsoft_teams, webex] |
+
+### 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 |
+|-------------|-------------|------------------|
+| **201** | recording session created | - |
+| **422** | validation error (e.g. bot already active) | - |
+
+
+# **deleteMeetingRecording**
+> deleteMeetingRecording(id)
+
+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.
+
+### 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.deleteMeetingRecording(id);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling MeetingRecordingsApi#deleteMeetingRecording");
+ 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 |
+|-------------|-------------|------------------|
+| **200** | meeting recording deleted | - |
+| **422** | cannot delete active recording | - |
+
+
+# **deleteMeetingRecordingVideo**
+> deleteMeetingRecordingVideo(id)
+
+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.
+
+### 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.deleteMeetingRecordingVideo(id);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling MeetingRecordingsApi#deleteMeetingRecordingVideo");
+ 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 |
+|-------------|-------------|------------------|
+| **200** | video deleted | - |
+| **422** | cannot delete video (active recording or no video) | - |
+
+
+# **getMeetingRecording**
+> getMeetingRecording(id)
+
+Get a meeting recording
+
+Retrieve a single meeting recording session including its status, duration, speaker count, word count, and transcript summary.
+
+### 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.getMeetingRecording(id);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling MeetingRecordingsApi#getMeetingRecording");
+ 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 |
+|-------------|-------------|------------------|
+| **200** | meeting recording found | - |
+| **404** | meeting recording not found | - |
+
+
+# **leaveMeetingRecording**
+> leaveMeetingRecording(id)
+
+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.
+
+### 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.leaveMeetingRecording(id);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling MeetingRecordingsApi#leaveMeetingRecording");
+ 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 |
+|-------------|-------------|------------------|
+| **200** | bot left the call | - |
+| **422** | bot is not in a call | - |
+
+
+# **listMeetingRecordings**
+> MeetingRecordingList listMeetingRecordings(incidentId, pageNumber, pageSize)
+
+List meeting recordings
+
+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.
+
+### 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
+ Integer pageNumber = 56; // Integer | Page number
+ Integer pageSize = 56; // Integer | Number of recordings per page
+ try {
+ MeetingRecordingList result = apiInstance.listMeetingRecordings(incidentId, pageNumber, pageSize);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling MeetingRecordingsApi#listMeetingRecordings");
+ 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 | |
+| **pageNumber** | **Integer**| Page number | [optional] |
+| **pageSize** | **Integer**| Number of recordings per page | [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 listed | - |
+| **404** | incident not found | - |
+
+
+# **pauseMeetingRecording**
+> pauseMeetingRecording(id)
+
+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.
+
+### 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.pauseMeetingRecording(id);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling MeetingRecordingsApi#pauseMeetingRecording");
+ 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 |
+|-------------|-------------|------------------|
+| **200** | recording paused | - |
+| **422** | recording is not active | - |
+
+
+# **resumeMeetingRecording**
+> resumeMeetingRecording(id)
+
+Resume a meeting recording
+
+Resume a paused recording session. The bot continues capturing audio/video from the meeting.
+
+### 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.resumeMeetingRecording(id);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling MeetingRecordingsApi#resumeMeetingRecording");
+ 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 |
+|-------------|-------------|------------------|
+| **200** | recording resumed | - |
+| **422** | recording is not paused | - |
+
+
+# **stopMeetingRecording**
+> stopMeetingRecording(id)
+
+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.
+
+### 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.stopMeetingRecording(id);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling MeetingRecordingsApi#stopMeetingRecording");
+ 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 |
+|-------------|-------------|------------------|
+| **200** | recording stopped | - |
+| **422** | recording cannot be stopped | - |
+
diff --git a/docs/NewApiKey.md b/docs/NewApiKey.md
new file mode 100644
index 00000000..f159e71f
--- /dev/null
+++ b/docs/NewApiKey.md
@@ -0,0 +1,13 @@
+
+
+# NewApiKey
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**NewApiKeyData**](NewApiKeyData.md) | | |
+
+
+
diff --git a/docs/NewApiKeyData.md b/docs/NewApiKeyData.md
new file mode 100644
index 00000000..97e19913
--- /dev/null
+++ b/docs/NewApiKeyData.md
@@ -0,0 +1,22 @@
+
+
+# NewApiKeyData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | [**TypeEnum**](#TypeEnum) | | |
+|**attributes** | [**NewApiKeyDataAttributes**](NewApiKeyDataAttributes.md) | | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| API_KEYS | "api_keys" |
+
+
+
diff --git a/docs/NewApiKeyDataAttributes.md b/docs/NewApiKeyDataAttributes.md
new file mode 100644
index 00000000..a103fd84
--- /dev/null
+++ b/docs/NewApiKeyDataAttributes.md
@@ -0,0 +1,29 @@
+
+
+# NewApiKeyDataAttributes
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**name** | **String** | The name of the API key | |
+|**description** | **String** | A description of the API key | [optional] |
+|**kind** | [**KindEnum**](#KindEnum) | The kind of the API key | |
+|**expiresAt** | **OffsetDateTime** | The expiration date of the API key (ISO 8601) | |
+|**groupId** | **String** | The group (team) ID. Required when kind is 'team'. | [optional] |
+|**roleId** | **String** | The role ID for organization API keys | [optional] |
+|**onCallRoleId** | **String** | The on-call role ID for organization API keys | [optional] |
+
+
+
+## Enum: KindEnum
+
+| Name | Value |
+|---- | -----|
+| PERSONAL | "personal" |
+| TEAM | "team" |
+| ORGANIZATION | "organization" |
+
+
+
diff --git a/docs/NewCatalogChecklistTemplate.md b/docs/NewCatalogChecklistTemplate.md
new file mode 100644
index 00000000..7650e021
--- /dev/null
+++ b/docs/NewCatalogChecklistTemplate.md
@@ -0,0 +1,13 @@
+
+
+# NewCatalogChecklistTemplate
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**NewCatalogChecklistTemplateData**](NewCatalogChecklistTemplateData.md) | | |
+
+
+
diff --git a/docs/NewCatalogChecklistTemplateData.md b/docs/NewCatalogChecklistTemplateData.md
new file mode 100644
index 00000000..12aca06c
--- /dev/null
+++ b/docs/NewCatalogChecklistTemplateData.md
@@ -0,0 +1,22 @@
+
+
+# NewCatalogChecklistTemplateData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | [**TypeEnum**](#TypeEnum) | | |
+|**attributes** | [**NewCatalogChecklistTemplateDataAttributes**](NewCatalogChecklistTemplateDataAttributes.md) | | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| CATALOG_CHECKLIST_TEMPLATES | "catalog_checklist_templates" |
+
+
+
diff --git a/docs/NewCatalogChecklistTemplateDataAttributes.md b/docs/NewCatalogChecklistTemplateDataAttributes.md
new file mode 100644
index 00000000..8d6f683d
--- /dev/null
+++ b/docs/NewCatalogChecklistTemplateDataAttributes.md
@@ -0,0 +1,42 @@
+
+
+# NewCatalogChecklistTemplateDataAttributes
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**name** | **String** | The name of the checklist template | |
+|**description** | **String** | The description of the checklist template | [optional] |
+|**catalogType** | [**CatalogTypeEnum**](#CatalogTypeEnum) | The catalog type | |
+|**scopeType** | [**ScopeTypeEnum**](#ScopeTypeEnum) | The scope type | |
+|**scopeId** | **String** | The scope ID (team or catalog UUID) | [optional] |
+|**fields** | [**List<NewCatalogChecklistTemplateDataAttributesFieldsInner>**](NewCatalogChecklistTemplateDataAttributesFieldsInner.md) | Template fields. Position is determined by array order. | [optional] |
+|**owners** | [**List<NewCatalogChecklistTemplateDataAttributesOwnersInner>**](NewCatalogChecklistTemplateDataAttributesOwnersInner.md) | Template owners | [optional] |
+
+
+
+## Enum: CatalogTypeEnum
+
+| Name | Value |
+|---- | -----|
+| SERVICE | "Service" |
+| FUNCTIONALITY | "Functionality" |
+| ENVIRONMENT | "Environment" |
+| GROUP | "Group" |
+| CAUSE | "Cause" |
+| INCIDENT_TYPE | "IncidentType" |
+| CATALOG | "Catalog" |
+
+
+
+## Enum: ScopeTypeEnum
+
+| Name | Value |
+|---- | -----|
+| TEAM | "Team" |
+| CATALOG | "Catalog" |
+
+
+
diff --git a/docs/NewCatalogChecklistTemplateDataAttributesFieldsInner.md b/docs/NewCatalogChecklistTemplateDataAttributesFieldsInner.md
new file mode 100644
index 00000000..2c2ac826
--- /dev/null
+++ b/docs/NewCatalogChecklistTemplateDataAttributesFieldsInner.md
@@ -0,0 +1,23 @@
+
+
+# NewCatalogChecklistTemplateDataAttributesFieldsInner
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**fieldSource** | [**FieldSourceEnum**](#FieldSourceEnum) | | |
+|**fieldKey** | **String** | Ignored for custom fields (auto-derived from catalog property) | |
+|**catalogPropertyId** | **String** | ID of the catalog property | |
+
+
+
+## Enum: FieldSourceEnum
+
+| Name | Value |
+|---- | -----|
+| CUSTOM | "custom" |
+
+
+
diff --git a/docs/NewCatalogChecklistTemplateDataAttributesOwnersInner.md b/docs/NewCatalogChecklistTemplateDataAttributesOwnersInner.md
new file mode 100644
index 00000000..5e9036f7
--- /dev/null
+++ b/docs/NewCatalogChecklistTemplateDataAttributesOwnersInner.md
@@ -0,0 +1,23 @@
+
+
+# NewCatalogChecklistTemplateDataAttributesOwnersInner
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | User ID for user owners, or field key for field owners | |
+|**type** | [**TypeEnum**](#TypeEnum) | Type of owner | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| FIELD | "field" |
+| USER | "user" |
+
+
+
diff --git a/docs/NewCatalogEntityDataAttributesPropertiesInner.md b/docs/NewCatalogEntityDataAttributesPropertiesInner.md
new file mode 100644
index 00000000..3ec89a29
--- /dev/null
+++ b/docs/NewCatalogEntityDataAttributesPropertiesInner.md
@@ -0,0 +1,14 @@
+
+
+# NewCatalogEntityDataAttributesPropertiesInner
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**catalogPropertyId** | **String** | Unique ID of the catalog property | |
+|**value** | **String** | The value for this property | |
+
+
+
diff --git a/docs/NewCatalogProperty.md b/docs/NewCatalogProperty.md
new file mode 100644
index 00000000..dbfd0fdb
--- /dev/null
+++ b/docs/NewCatalogProperty.md
@@ -0,0 +1,14 @@
+
+
+# NewCatalogProperty
+
+A catalog can have a maximum of 50 properties.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**NewCatalogPropertyData**](NewCatalogPropertyData.md) | | |
+
+
+
diff --git a/docs/NewCatalogPropertyData.md b/docs/NewCatalogPropertyData.md
new file mode 100644
index 00000000..3cccf73a
--- /dev/null
+++ b/docs/NewCatalogPropertyData.md
@@ -0,0 +1,22 @@
+
+
+# NewCatalogPropertyData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | [**TypeEnum**](#TypeEnum) | | |
+|**attributes** | [**NewCatalogPropertyDataAttributes**](NewCatalogPropertyDataAttributes.md) | | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| CATALOG_PROPERTIES | "catalog_properties" |
+
+
+
diff --git a/docs/NewCatalogPropertyDataAttributes.md b/docs/NewCatalogPropertyDataAttributes.md
new file mode 100644
index 00000000..c7151874
--- /dev/null
+++ b/docs/NewCatalogPropertyDataAttributes.md
@@ -0,0 +1,51 @@
+
+
+# NewCatalogPropertyDataAttributes
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**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 property is required. | [optional] |
+|**catalogType** | [**CatalogTypeEnum**](#CatalogTypeEnum) | The type of catalog the property belongs to. | [optional] |
+
+
+
+## Enum: KindEnum
+
+| Name | Value |
+|---- | -----|
+| TEXT | "text" |
+| REFERENCE | "reference" |
+| BOOLEAN | "boolean" |
+| REFERENCE2 | "reference" |
+| 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/NewCauseDataAttributesPropertiesInner.md b/docs/NewCauseDataAttributesPropertiesInner.md
new file mode 100644
index 00000000..2c49f564
--- /dev/null
+++ b/docs/NewCauseDataAttributesPropertiesInner.md
@@ -0,0 +1,15 @@
+
+
+# NewCauseDataAttributesPropertiesInner
+
+Set a value for a catalog property
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**catalogPropertyId** | **String** | Catalog property ID | |
+|**value** | **String** | The property value | |
+
+
+
diff --git a/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf.md b/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf.md
new file mode 100644
index 00000000..f9d44d0e
--- /dev/null
+++ b/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf.md
@@ -0,0 +1,22 @@
+
+
+# NewEscalationPolicyPathDataAttributesRulesInnerOneOf
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**ruleType** | [**RuleTypeEnum**](#RuleTypeEnum) | The type of the escalation path rule | |
+|**urgencyIds** | **List<String>** | Alert urgency ids for which this escalation path should be used | |
+
+
+
+## Enum: RuleTypeEnum
+
+| Name | Value |
+|---- | -----|
+| ALERT_URGENCY | "alert_urgency" |
+
+
+
diff --git a/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf1.md b/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf1.md
new file mode 100644
index 00000000..195f0504
--- /dev/null
+++ b/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf1.md
@@ -0,0 +1,22 @@
+
+
+# NewEscalationPolicyPathDataAttributesRulesInnerOneOf1
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**ruleType** | [**RuleTypeEnum**](#RuleTypeEnum) | The type of the escalation path rule | |
+|**withinWorkingHour** | **Boolean** | Whether the escalation path should be used within working hours | |
+
+
+
+## Enum: RuleTypeEnum
+
+| Name | Value |
+|---- | -----|
+| WORKING_HOUR | "working_hour" |
+
+
+
diff --git a/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf2.md b/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf2.md
new file mode 100644
index 00000000..cb2edb40
--- /dev/null
+++ b/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf2.md
@@ -0,0 +1,40 @@
+
+
+# NewEscalationPolicyPathDataAttributesRulesInnerOneOf2
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**ruleType** | [**RuleTypeEnum**](#RuleTypeEnum) | The type of the escalation path rule | |
+|**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 | [optional] |
+|**values** | **List<String>** | Values to match against (for is_one_of / is_not_one_of operators) | [optional] |
+
+
+
+## Enum: RuleTypeEnum
+
+| Name | Value |
+|---- | -----|
+| JSON_PATH | "json_path" |
+
+
+
+## Enum: OperatorEnum
+
+| Name | Value |
+|---- | -----|
+| IS | "is" |
+| IS_NOT | "is_not" |
+| CONTAINS | "contains" |
+| DOES_NOT_CONTAIN | "does_not_contain" |
+| IS_ONE_OF | "is_one_of" |
+| IS_NOT_ONE_OF | "is_not_one_of" |
+| IS_SET | "is_set" |
+| IS_NOT_SET | "is_not_set" |
+
+
+
diff --git a/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf3.md b/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf3.md
new file mode 100644
index 00000000..c7f6be45
--- /dev/null
+++ b/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf3.md
@@ -0,0 +1,46 @@
+
+
+# NewEscalationPolicyPathDataAttributesRulesInnerOneOf3
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**ruleType** | [**RuleTypeEnum**](#RuleTypeEnum) | The type of the escalation path rule | |
+|**fieldableType** | **String** | The type of the fieldable (e.g., AlertField) | |
+|**fieldableId** | **String** | The ID of the alert field | |
+|**operator** | [**OperatorEnum**](#OperatorEnum) | How the alert field value should be matched | |
+|**values** | **List<String>** | Values to match against | [optional] |
+
+
+
+## Enum: RuleTypeEnum
+
+| Name | Value |
+|---- | -----|
+| FIELD | "field" |
+
+
+
+## Enum: OperatorEnum
+
+| Name | Value |
+|---- | -----|
+| IS | "is" |
+| IS_NOT | "is_not" |
+| IS_ONE_OF | "is_one_of" |
+| IS_NOT_ONE_OF | "is_not_one_of" |
+| CONTAINS | "contains" |
+| DOES_NOT_CONTAIN | "does_not_contain" |
+| IS_EMPTY | "is_empty" |
+| IS_NOT_EMPTY | "is_not_empty" |
+| 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" |
+
+
+
diff --git a/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf4.md b/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf4.md
new file mode 100644
index 00000000..a5aa06e4
--- /dev/null
+++ b/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf4.md
@@ -0,0 +1,22 @@
+
+
+# NewEscalationPolicyPathDataAttributesRulesInnerOneOf4
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**ruleType** | [**RuleTypeEnum**](#RuleTypeEnum) | The type of the escalation path rule | |
+|**serviceIds** | **List<String>** | Service ids for which this escalation path should be used | |
+
+
+
+## Enum: RuleTypeEnum
+
+| Name | Value |
+|---- | -----|
+| SERVICE | "service" |
+
+
+
diff --git a/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5.md b/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5.md
new file mode 100644
index 00000000..c525141a
--- /dev/null
+++ b/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5.md
@@ -0,0 +1,334 @@
+
+
+# NewEscalationPolicyPathDataAttributesRulesInnerOneOf5
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**ruleType** | [**RuleTypeEnum**](#RuleTypeEnum) | The type of the escalation path rule | |
+|**timeZone** | [**TimeZoneEnum**](#TimeZoneEnum) | Time zone for the deferral window | |
+|**timeBlocks** | [**List<NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner>**](NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner.md) | Time windows during which alerts are deferred | |
+
+
+
+## Enum: RuleTypeEnum
+
+| Name | Value |
+|---- | -----|
+| DEFERRAL_WINDOW | "deferral_window" |
+
+
+
+## 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" |
+| AMERICA_MEXICO_CITY2 | "America/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" |
+| AMERICA_LIMA2 | "America/Lima" |
+| 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" |
+| EUROPE_LONDON2 | "Europe/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" |
+| EUROPE_ZURICH2 | "Europe/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" |
+| EUROPE_MOSCOW2 | "Europe/Moscow" |
+| 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" |
+| ASIA_MUSCAT2 | "Asia/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" |
+| 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" |
+| 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" |
+| ASIA_BANGKOK2 | "Asia/Bangkok" |
+| 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" |
+| ASIA_TOKYO2 | "Asia/Tokyo" |
+| SEOUL | "Seoul" |
+| ASIA_SEOUL | "Asia/Seoul" |
+| TOKYO | "Tokyo" |
+| ASIA_TOKYO3 | "Asia/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" |
+| PACIFIC_AUCKLAND2 | "Pacific/Auckland" |
+| 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" |
+
+
+
diff --git a/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner.md b/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner.md
new file mode 100644
index 00000000..46cdbe5a
--- /dev/null
+++ b/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner.md
@@ -0,0 +1,23 @@
+
+
+# NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**monday** | **Boolean** | | [optional] |
+|**tuesday** | **Boolean** | | [optional] |
+|**wednesday** | **Boolean** | | [optional] |
+|**thursday** | **Boolean** | | [optional] |
+|**friday** | **Boolean** | | [optional] |
+|**saturday** | **Boolean** | | [optional] |
+|**sunday** | **Boolean** | | [optional] |
+|**startTime** | **String** | Formatted as HH:MM | [optional] |
+|**endTime** | **String** | Formatted as HH:MM | [optional] |
+|**allDay** | **Boolean** | | [optional] |
+|**position** | **Integer** | | [optional] |
+
+
+
diff --git a/docs/NewOnCallPayReport.md b/docs/NewOnCallPayReport.md
new file mode 100644
index 00000000..78f6edad
--- /dev/null
+++ b/docs/NewOnCallPayReport.md
@@ -0,0 +1,13 @@
+
+
+# NewOnCallPayReport
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**NewOnCallPayReportData**](NewOnCallPayReportData.md) | | |
+
+
+
diff --git a/docs/NewOnCallPayReportData.md b/docs/NewOnCallPayReportData.md
new file mode 100644
index 00000000..ae396668
--- /dev/null
+++ b/docs/NewOnCallPayReportData.md
@@ -0,0 +1,22 @@
+
+
+# NewOnCallPayReportData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | [**TypeEnum**](#TypeEnum) | | |
+|**attributes** | [**NewOnCallPayReportDataAttributes**](NewOnCallPayReportDataAttributes.md) | | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| ON_CALL_PAY_REPORTS | "on_call_pay_reports" |
+
+
+
diff --git a/docs/NewOnCallPayReportDataAttributes.md b/docs/NewOnCallPayReportDataAttributes.md
new file mode 100644
index 00000000..f715af9a
--- /dev/null
+++ b/docs/NewOnCallPayReportDataAttributes.md
@@ -0,0 +1,15 @@
+
+
+# NewOnCallPayReportDataAttributes
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**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] |
+
+
+
diff --git a/docs/NewSla.md b/docs/NewSla.md
new file mode 100644
index 00000000..fb3a3176
--- /dev/null
+++ b/docs/NewSla.md
@@ -0,0 +1,13 @@
+
+
+# NewSla
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**NewSlaData**](NewSlaData.md) | | |
+
+
+
diff --git a/docs/NewSlaData.md b/docs/NewSlaData.md
new file mode 100644
index 00000000..efb8e5df
--- /dev/null
+++ b/docs/NewSlaData.md
@@ -0,0 +1,22 @@
+
+
+# NewSlaData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | [**TypeEnum**](#TypeEnum) | | |
+|**attributes** | [**NewSlaDataAttributes**](NewSlaDataAttributes.md) | | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| SLAS | "slas" |
+
+
+
diff --git a/docs/NewSlaDataAttributes.md b/docs/NewSlaDataAttributes.md
new file mode 100644
index 00000000..512cd906
--- /dev/null
+++ b/docs/NewSlaDataAttributes.md
@@ -0,0 +1,97 @@
+
+
+# NewSlaDataAttributes
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**name** | **String** | The name of the SLA | |
+|**description** | **String** | A description of the SLA | [optional] |
+|**position** | **Integer** | Position of the SLA for ordering | [optional] |
+|**conditionMatchType** | [**ConditionMatchTypeEnum**](#ConditionMatchTypeEnum) | Whether all or any conditions must match | [optional] |
+|**managerRoleId** | **UUID** | The ID of the incident role responsible for this SLA. Must provide either manager_role_id or manager_user_id. | [optional] |
+|**managerUserId** | **Integer** | The ID of the user responsible for this SLA. Must provide either manager_role_id or manager_user_id. | [optional] |
+|**assignmentDeadlineDays** | [**AssignmentDeadlineDaysEnum**](#AssignmentDeadlineDaysEnum) | Number of days for the assignment deadline | |
+|**assignmentDeadlineParentStatus** | [**AssignmentDeadlineParentStatusEnum**](#AssignmentDeadlineParentStatusEnum) | The incident parent status that triggers the assignment deadline | |
+|**assignmentDeadlineSubStatusId** | **UUID** | Sub-status for the assignment deadline. Required when custom lifecycle statuses are enabled on the team. | [optional] |
+|**assignmentSkipWeekends** | **Boolean** | Whether to skip weekends when calculating the assignment deadline | [optional] |
+|**completionDeadlineDays** | [**CompletionDeadlineDaysEnum**](#CompletionDeadlineDaysEnum) | Number of days for the completion deadline | |
+|**completionDeadlineParentStatus** | [**CompletionDeadlineParentStatusEnum**](#CompletionDeadlineParentStatusEnum) | The incident parent status that triggers the completion deadline | |
+|**completionDeadlineSubStatusId** | **UUID** | Sub-status for the completion deadline. Required when custom lifecycle statuses are enabled on the team. | [optional] |
+|**completionSkipWeekends** | **Boolean** | Whether to skip weekends when calculating the completion deadline | [optional] |
+|**conditions** | [**List<NewSlaDataAttributesConditionsInner>**](NewSlaDataAttributesConditionsInner.md) | Conditions that determine which incidents this SLA applies to. Maximum 20. | [optional] |
+|**notificationConfigurations** | [**List<NewSlaDataAttributesNotificationConfigurationsInner>**](NewSlaDataAttributesNotificationConfigurationsInner.md) | Notification timing configurations. Maximum 20. | [optional] |
+
+
+
+## Enum: ConditionMatchTypeEnum
+
+| Name | Value |
+|---- | -----|
+| ALL | "ALL" |
+| ANY | "ANY" |
+
+
+
+## Enum: AssignmentDeadlineDaysEnum
+
+| Name | Value |
+|---- | -----|
+| NUMBER_1 | 1 |
+| NUMBER_2 | 2 |
+| NUMBER_3 | 3 |
+| NUMBER_4 | 4 |
+| NUMBER_5 | 5 |
+| NUMBER_6 | 6 |
+| NUMBER_7 | 7 |
+| NUMBER_14 | 14 |
+| NUMBER_21 | 21 |
+| NUMBER_30 | 30 |
+
+
+
+## Enum: AssignmentDeadlineParentStatusEnum
+
+| Name | Value |
+|---- | -----|
+| IN_TRIAGE | "in_triage" |
+| STARTED | "started" |
+| MITIGATED | "mitigated" |
+| RESOLVED | "resolved" |
+| CLOSED | "closed" |
+| CANCELLED | "cancelled" |
+
+
+
+## Enum: CompletionDeadlineDaysEnum
+
+| Name | Value |
+|---- | -----|
+| NUMBER_1 | 1 |
+| NUMBER_2 | 2 |
+| NUMBER_3 | 3 |
+| NUMBER_4 | 4 |
+| NUMBER_5 | 5 |
+| NUMBER_6 | 6 |
+| NUMBER_7 | 7 |
+| NUMBER_14 | 14 |
+| NUMBER_21 | 21 |
+| NUMBER_30 | 30 |
+
+
+
+## Enum: CompletionDeadlineParentStatusEnum
+
+| Name | Value |
+|---- | -----|
+| IN_TRIAGE | "in_triage" |
+| STARTED | "started" |
+| MITIGATED | "mitigated" |
+| RESOLVED | "resolved" |
+| CLOSED | "closed" |
+| CANCELLED | "cancelled" |
+
+
+
diff --git a/docs/NewSlaDataAttributesConditionsInner.md b/docs/NewSlaDataAttributesConditionsInner.md
new file mode 100644
index 00000000..b9666870
--- /dev/null
+++ b/docs/NewSlaDataAttributesConditionsInner.md
@@ -0,0 +1,52 @@
+
+
+# NewSlaDataAttributesConditionsInner
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**conditionableType** | [**ConditionableTypeEnum**](#ConditionableTypeEnum) | The type of condition | |
+|**property** | [**PropertyEnum**](#PropertyEnum) | 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. | [optional] |
+|**operator** | **String** | The comparison operator | |
+|**values** | **List<String>** | The values to compare against | [optional] |
+|**formFieldId** | **UUID** | The ID of the form field (for custom field conditions) | [optional] |
+|**position** | **Integer** | The position of the condition for ordering | [optional] |
+
+
+
+## Enum: ConditionableTypeEnum
+
+| Name | Value |
+|---- | -----|
+| SLAS_BUILT_IN_FIELD_CONDITION | "SLAs::BuiltInFieldCondition" |
+| SLAS_CUSTOM_FIELD_CONDITION | "SLAs::CustomFieldCondition" |
+
+
+
+## Enum: PropertyEnum
+
+| Name | Value |
+|---- | -----|
+| SEVERITY | "severity" |
+| ENVIRONMENT | "environment" |
+| SERVICE | "service" |
+| FUNCTIONALITY | "functionality" |
+| INCIDENT_TYPE | "incident_type" |
+| GROUP | "group" |
+| CAUSE | "cause" |
+| SUB_STATUS | "sub_status" |
+| INCIDENT_ROLE | "incident_role" |
+| STATUS | "status" |
+| KIND | "kind" |
+| VISIBILITY | "visibility" |
+| SUMMARY | "summary" |
+| STARTED_AT | "started_at" |
+| DETECTED_AT | "detected_at" |
+| ACKNOWLEDGED_AT | "acknowledged_at" |
+| MITIGATED_AT | "mitigated_at" |
+| RESOLVED_AT | "resolved_at" |
+
+
+
diff --git a/docs/NewSlaDataAttributesNotificationConfigurationsInner.md b/docs/NewSlaDataAttributesNotificationConfigurationsInner.md
new file mode 100644
index 00000000..6c86657a
--- /dev/null
+++ b/docs/NewSlaDataAttributesNotificationConfigurationsInner.md
@@ -0,0 +1,24 @@
+
+
+# NewSlaDataAttributesNotificationConfigurationsInner
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**offsetType** | [**OffsetTypeEnum**](#OffsetTypeEnum) | When to send the notification relative to the deadline | |
+|**offsetDays** | **Integer** | Number of days before or after the deadline. Must be 0 for when_due. | |
+
+
+
+## Enum: OffsetTypeEnum
+
+| Name | Value |
+|---- | -----|
+| BEFORE_DUE | "before_due" |
+| WHEN_DUE | "when_due" |
+| AFTER_DUE | "after_due" |
+
+
+
diff --git a/docs/OnCallPayReport.md b/docs/OnCallPayReport.md
new file mode 100644
index 00000000..47cdd7e6
--- /dev/null
+++ b/docs/OnCallPayReport.md
@@ -0,0 +1,51 @@
+
+
+# OnCallPayReport
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**status** | [**StatusEnum**](#StatusEnum) | The current status of the report. | |
+|**startDate** | **LocalDate** | The start date of the report period. | |
+|**endDate** | **LocalDate** | The end date of the report period. | |
+|**totalDuration** | **Integer** | Total on-call duration in seconds. | [optional] |
+|**usersCount** | **Integer** | Number of users included in the report. | [optional] |
+|**currency** | **String** | The currency code for monetary values. | [optional] |
+|**payType** | [**PayTypeEnum**](#PayTypeEnum) | The pay calculation type. | [optional] |
+|**hourlyRateCents** | **Integer** | Hourly pay rate in cents. | [optional] |
+|**dailyRateCents** | **Integer** | Daily pay rate in cents. | [optional] |
+|**totalPayCents** | **Integer** | Total pay amount in cents. | [optional] |
+|**includeShadow** | **Boolean** | Whether shadow shifts are included. | [optional] |
+|**showIndividualShiftData** | **Boolean** | Whether individual shift data is shown. | [optional] |
+|**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] |
+|**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** | | |
+|**updatedAt** | **OffsetDateTime** | | |
+
+
+
+## Enum: StatusEnum
+
+| Name | Value |
+|---- | -----|
+| PROCESSING | "processing" |
+| GENERATED | "generated" |
+| DOWNLOADED | "downloaded" |
+
+
+
+## Enum: PayTypeEnum
+
+| Name | Value |
+|---- | -----|
+| HOURLY | "hourly" |
+| DAILY | "daily" |
+
+
+
diff --git a/docs/OnCallPayReportList.md b/docs/OnCallPayReportList.md
new file mode 100644
index 00000000..b56490da
--- /dev/null
+++ b/docs/OnCallPayReportList.md
@@ -0,0 +1,15 @@
+
+
+# OnCallPayReportList
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**List<OnCallPayReportResponseData>**](OnCallPayReportResponseData.md) | | |
+|**links** | [**Links**](Links.md) | | |
+|**meta** | [**Meta**](Meta.md) | | |
+
+
+
diff --git a/docs/OnCallPayReportResponse.md b/docs/OnCallPayReportResponse.md
new file mode 100644
index 00000000..7f4f2fc3
--- /dev/null
+++ b/docs/OnCallPayReportResponse.md
@@ -0,0 +1,13 @@
+
+
+# OnCallPayReportResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**OnCallPayReportResponseData**](OnCallPayReportResponseData.md) | | |
+
+
+
diff --git a/docs/OnCallPayReportResponseData.md b/docs/OnCallPayReportResponseData.md
new file mode 100644
index 00000000..d752a880
--- /dev/null
+++ b/docs/OnCallPayReportResponseData.md
@@ -0,0 +1,23 @@
+
+
+# OnCallPayReportResponseData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | Unique ID of the on_call_pay_report | |
+|**type** | [**TypeEnum**](#TypeEnum) | | |
+|**attributes** | [**OnCallPayReport**](OnCallPayReport.md) | | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| ON_CALL_PAY_REPORTS | "on_call_pay_reports" |
+
+
+
diff --git a/docs/OnCallPayReportsApi.md b/docs/OnCallPayReportsApi.md
new file mode 100644
index 00000000..c54d9036
--- /dev/null
+++ b/docs/OnCallPayReportsApi.md
@@ -0,0 +1,372 @@
+# OnCallPayReportsApi
+
+All URIs are relative to *https://api.rootly.com*
+
+| Method | HTTP request | Description |
+|------------- | ------------- | -------------|
+| [**createOnCallPayReport**](OnCallPayReportsApi.md#createOnCallPayReport) | **POST** /v1/on_call_pay_reports | Creates an On-Call Pay Report |
+| [**getOnCallPayReport**](OnCallPayReportsApi.md#getOnCallPayReport) | **GET** /v1/on_call_pay_reports/{id} | Retrieves an On-Call Pay Report |
+| [**listOnCallPayReports**](OnCallPayReportsApi.md#listOnCallPayReports) | **GET** /v1/on_call_pay_reports | List On-Call Pay Reports |
+| [**regenerateOnCallPayReport**](OnCallPayReportsApi.md#regenerateOnCallPayReport) | **POST** /v1/on_call_pay_reports/{id}/regenerate | Regenerate an On-Call Pay Report |
+| [**updateOnCallPayReport**](OnCallPayReportsApi.md#updateOnCallPayReport) | **PUT** /v1/on_call_pay_reports/{id} | Update an On-Call Pay Report |
+
+
+
+# **createOnCallPayReport**
+> OnCallPayReportResponse createOnCallPayReport(newOnCallPayReport)
+
+Creates an On-Call Pay Report
+
+Generates a new on-call pay report for the given date range. The report is generated asynchronously.
+
+### 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.OnCallPayReportsApi;
+
+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");
+
+ OnCallPayReportsApi apiInstance = new OnCallPayReportsApi(defaultClient);
+ NewOnCallPayReport newOnCallPayReport = new NewOnCallPayReport(); // NewOnCallPayReport |
+ try {
+ OnCallPayReportResponse result = apiInstance.createOnCallPayReport(newOnCallPayReport);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling OnCallPayReportsApi#createOnCallPayReport");
+ 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 |
+|------------- | ------------- | ------------- | -------------|
+| **newOnCallPayReport** | [**NewOnCallPayReport**](NewOnCallPayReport.md)| | |
+
+### Return type
+
+[**OnCallPayReportResponse**](OnCallPayReportResponse.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** | on_call_pay_report created | - |
+| **422** | invalid request | - |
+| **401** | responds with unauthorized for invalid token | - |
+
+
+# **getOnCallPayReport**
+> OnCallPayReportResponse getOnCallPayReport(id, include)
+
+Retrieves an On-Call Pay Report
+
+Retrieves a specific on-call pay report 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.OnCallPayReportsApi;
+
+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");
+
+ OnCallPayReportsApi apiInstance = new OnCallPayReportsApi(defaultClient);
+ String id = "id_example"; // String |
+ String include = "include_example"; // String |
+ try {
+ OnCallPayReportResponse result = apiInstance.getOnCallPayReport(id, include);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling OnCallPayReportsApi#getOnCallPayReport");
+ 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
+
+[**OnCallPayReportResponse**](OnCallPayReportResponse.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** | on_call_pay_report found | - |
+| **404** | resource not found for different team | - |
+
+
+# **listOnCallPayReports**
+> OnCallPayReportList listOnCallPayReports(include, pageNumber, pageSize, filterStatus, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte)
+
+List On-Call Pay Reports
+
+List on-call pay reports
+
+### 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.OnCallPayReportsApi;
+
+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");
+
+ OnCallPayReportsApi apiInstance = new OnCallPayReportsApi(defaultClient);
+ String include = "include_example"; // String |
+ Integer pageNumber = 56; // Integer |
+ Integer pageSize = 56; // Integer |
+ String filterStatus = "filterStatus_example"; // String |
+ String filterCreatedAtGt = "filterCreatedAtGt_example"; // String |
+ String filterCreatedAtGte = "filterCreatedAtGte_example"; // String |
+ String filterCreatedAtLt = "filterCreatedAtLt_example"; // String |
+ String filterCreatedAtLte = "filterCreatedAtLte_example"; // String |
+ try {
+ OnCallPayReportList result = apiInstance.listOnCallPayReports(include, pageNumber, pageSize, filterStatus, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling OnCallPayReportsApi#listOnCallPayReports");
+ 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] |
+| **pageNumber** | **Integer**| | [optional] |
+| **pageSize** | **Integer**| | [optional] |
+| **filterStatus** | **String**| | [optional] |
+| **filterCreatedAtGt** | **String**| | [optional] |
+| **filterCreatedAtGte** | **String**| | [optional] |
+| **filterCreatedAtLt** | **String**| | [optional] |
+| **filterCreatedAtLte** | **String**| | [optional] |
+
+### Return type
+
+[**OnCallPayReportList**](OnCallPayReportList.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 | - |
+
+
+# **regenerateOnCallPayReport**
+> OnCallPayReportResponse regenerateOnCallPayReport(id)
+
+Regenerate an On-Call Pay Report
+
+Triggers regeneration of an existing on-call pay report.
+
+### 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.OnCallPayReportsApi;
+
+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");
+
+ OnCallPayReportsApi apiInstance = new OnCallPayReportsApi(defaultClient);
+ String id = "id_example"; // String |
+ try {
+ OnCallPayReportResponse result = apiInstance.regenerateOnCallPayReport(id);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling OnCallPayReportsApi#regenerateOnCallPayReport");
+ 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
+
+[**OnCallPayReportResponse**](OnCallPayReportResponse.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** | on_call_pay_report regeneration triggered | - |
+| **404** | on_call_pay_report not found | - |
+
+
+# **updateOnCallPayReport**
+> OnCallPayReportResponse updateOnCallPayReport(id, updateOnCallPayReport)
+
+Update an On-Call Pay Report
+
+Update a specific on-call pay report by id. Triggers report regeneration.
+
+### 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.OnCallPayReportsApi;
+
+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");
+
+ OnCallPayReportsApi apiInstance = new OnCallPayReportsApi(defaultClient);
+ String id = "id_example"; // String |
+ UpdateOnCallPayReport updateOnCallPayReport = new UpdateOnCallPayReport(); // UpdateOnCallPayReport |
+ try {
+ OnCallPayReportResponse result = apiInstance.updateOnCallPayReport(id, updateOnCallPayReport);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling OnCallPayReportsApi#updateOnCallPayReport");
+ 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**| | |
+| **updateOnCallPayReport** | [**UpdateOnCallPayReport**](UpdateOnCallPayReport.md)| | |
+
+### Return type
+
+[**OnCallPayReportResponse**](OnCallPayReportResponse.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** | on_call_pay_report updated | - |
+| **404** | not allowed when flipper disabled | - |
+| **422** | invalid request | - |
+
diff --git a/docs/OnCallsApi.md b/docs/OnCallsApi.md
new file mode 100644
index 00000000..1d4b13ca
--- /dev/null
+++ b/docs/OnCallsApi.md
@@ -0,0 +1,97 @@
+# OnCallsApi
+
+All URIs are relative to *https://api.rootly.com*
+
+| Method | HTTP request | Description |
+|------------- | ------------- | -------------|
+| [**listOncalls**](OnCallsApi.md#listOncalls) | **GET** /v1/oncalls | List on-calls |
+
+
+
+# **listOncalls**
+> listOncalls(include, since, until, earliest, timeZone, filterEscalationPolicyIds, filterScheduleIds, filterUserIds, filterServiceIds, filterGroupIds, filterNotificationTypes)
+
+List on-calls
+
+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.
+
+### 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.OnCallsApi;
+
+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");
+
+ OnCallsApi apiInstance = new OnCallsApi(defaultClient);
+ 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
+ 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).
+ try {
+ apiInstance.listOncalls(include, since, until, earliest, timeZone, filterEscalationPolicyIds, filterScheduleIds, filterUserIds, filterServiceIds, filterGroupIds, filterNotificationTypes);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling OnCallsApi#listOncalls");
+ 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: 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] |
+| **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] |
+
+### Return type
+
+null (empty response body)
+
+### 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** | resource not found when alerting is disabled | - |
+| **401** | responds with unauthorized for invalid token | - |
+
diff --git a/docs/PageJsmopsOnCallRespondersTaskParams.md b/docs/PageJsmopsOnCallRespondersTaskParams.md
new file mode 100644
index 00000000..f8bcbb27
--- /dev/null
+++ b/docs/PageJsmopsOnCallRespondersTaskParams.md
@@ -0,0 +1,41 @@
+
+
+# PageJsmopsOnCallRespondersTaskParams
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] |
+|**title** | **String** | Incident title. | [optional] |
+|**message** | **String** | Message of the incident | [optional] |
+|**description** | **String** | Description field of the incident that is generally used to provide a detailed information about the incident | [optional] |
+|**teams** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] |
+|**users** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] |
+|**priority** | [**PriorityEnum**](#PriorityEnum) | | [optional] |
+
+
+
+## Enum: TaskTypeEnum
+
+| Name | Value |
+|---- | -----|
+| PAGE_JSMOPS_ON_CALL_RESPONDERS | "page_jsmops_on_call_responders" |
+
+
+
+## Enum: PriorityEnum
+
+| Name | Value |
+|---- | -----|
+| P3 | "P3" |
+| P1 | "P1" |
+| P2 | "P2" |
+| P32 | "P3" |
+| P4 | "P4" |
+| P5 | "P5" |
+| AUTO | "auto" |
+
+
+
diff --git a/docs/PatchAlertRoute.md b/docs/PatchAlertRoute.md
new file mode 100644
index 00000000..7ba4db4e
--- /dev/null
+++ b/docs/PatchAlertRoute.md
@@ -0,0 +1,13 @@
+
+
+# PatchAlertRoute
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**PatchAlertRouteData**](PatchAlertRouteData.md) | | |
+
+
+
diff --git a/docs/PatchAlertRouteData.md b/docs/PatchAlertRouteData.md
new file mode 100644
index 00000000..288acd8c
--- /dev/null
+++ b/docs/PatchAlertRouteData.md
@@ -0,0 +1,22 @@
+
+
+# PatchAlertRouteData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | [**TypeEnum**](#TypeEnum) | | |
+|**attributes** | [**PatchAlertRouteDataAttributes**](PatchAlertRouteDataAttributes.md) | | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| ALERT_ROUTES | "alert_routes" |
+
+
+
diff --git a/docs/PatchAlertRouteDataAttributes.md b/docs/PatchAlertRouteDataAttributes.md
new file mode 100644
index 00000000..6970d842
--- /dev/null
+++ b/docs/PatchAlertRouteDataAttributes.md
@@ -0,0 +1,17 @@
+
+
+# PatchAlertRouteDataAttributes
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**name** | **String** | The name of the alert route | [optional] |
+|**enabled** | **Boolean** | Whether the alert route is enabled | [optional] |
+|**alertsSourceIds** | **List<UUID>** | | [optional] |
+|**owningTeamIds** | **List<UUID>** | | [optional] |
+|**rules** | [**List<PatchAlertRouteDataAttributesRulesInner>**](PatchAlertRouteDataAttributesRulesInner.md) | | [optional] |
+
+
+
diff --git a/docs/PatchAlertRouteDataAttributesRulesInner.md b/docs/PatchAlertRouteDataAttributesRulesInner.md
new file mode 100644
index 00000000..5a3b4b90
--- /dev/null
+++ b/docs/PatchAlertRouteDataAttributesRulesInner.md
@@ -0,0 +1,19 @@
+
+
+# PatchAlertRouteDataAttributesRulesInner
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **UUID** | The ID of the alert routing rule. Required for updating or deleting existing rules. | [optional] |
+|**destroy** | **Boolean** | Set to true to delete this rule. When true, only the id field is required. | [optional] |
+|**name** | **String** | The name of the alert routing rule | [optional] |
+|**position** | **Integer** | The position of the alert routing rule for ordering evaluation | [optional] |
+|**fallbackRule** | **Boolean** | Whether this is a fallback rule | [optional] |
+|**destinations** | [**List<PatchAlertRouteDataAttributesRulesInnerDestinationsInner>**](PatchAlertRouteDataAttributesRulesInnerDestinationsInner.md) | | [optional] |
+|**conditionGroups** | [**List<PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner>**](PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner.md) | | [optional] |
+
+
+
diff --git a/docs/PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner.md b/docs/PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner.md
new file mode 100644
index 00000000..d8bef177
--- /dev/null
+++ b/docs/PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner.md
@@ -0,0 +1,16 @@
+
+
+# PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **UUID** | The ID of the condition group. Required for updating or deleting existing condition groups. | [optional] |
+|**destroy** | **Boolean** | Set to true to delete this condition group | [optional] |
+|**position** | **Integer** | The position of the condition group | [optional] |
+|**conditions** | [**List<PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner>**](PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner.md) | | [optional] |
+
+
+
diff --git a/docs/PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner.md b/docs/PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner.md
new file mode 100644
index 00000000..ba61f8c2
--- /dev/null
+++ b/docs/PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner.md
@@ -0,0 +1,55 @@
+
+
+# PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **UUID** | The ID of the condition. Required for updating or deleting existing conditions. | [optional] |
+|**destroy** | **Boolean** | Set to true to delete this condition | [optional] |
+|**propertyFieldConditionType** | [**PropertyFieldConditionTypeEnum**](#PropertyFieldConditionTypeEnum) | | [optional] |
+|**propertyFieldName** | **String** | The name of the property field | [optional] |
+|**propertyFieldType** | [**PropertyFieldTypeEnum**](#PropertyFieldTypeEnum) | | [optional] |
+|**propertyFieldValue** | **String** | The value of the property field | [optional] |
+|**propertyFieldValues** | **List<String>** | | [optional] |
+|**alertUrgencyIds** | **List<String>** | The Alert Urgency IDs to check in the condition | [optional] |
+|**conditionableType** | [**ConditionableTypeEnum**](#ConditionableTypeEnum) | The type of the conditionable | [optional] |
+|**conditionableId** | **UUID** | The ID of the conditionable | [optional] |
+
+
+
+## Enum: PropertyFieldConditionTypeEnum
+
+| Name | Value |
+|---- | -----|
+| IS_ONE_OF | "is_one_of" |
+| IS_NOT_ONE_OF | "is_not_one_of" |
+| CONTAINS | "contains" |
+| DOES_NOT_CONTAIN | "does_not_contain" |
+| STARTS_WITH | "starts_with" |
+| ENDS_WITH | "ends_with" |
+| MATCHES_REGEX | "matches_regex" |
+| IS_EMPTY | "is_empty" |
+
+
+
+## Enum: PropertyFieldTypeEnum
+
+| Name | Value |
+|---- | -----|
+| ATTRIBUTE | "attribute" |
+| PAYLOAD | "payload" |
+| ALERT_FIELD | "alert_field" |
+
+
+
+## Enum: ConditionableTypeEnum
+
+| Name | Value |
+|---- | -----|
+| ALERT_FIELD | "AlertField" |
+
+
+
diff --git a/docs/PatchAlertRouteDataAttributesRulesInnerDestinationsInner.md b/docs/PatchAlertRouteDataAttributesRulesInnerDestinationsInner.md
new file mode 100644
index 00000000..b325e304
--- /dev/null
+++ b/docs/PatchAlertRouteDataAttributesRulesInnerDestinationsInner.md
@@ -0,0 +1,27 @@
+
+
+# PatchAlertRouteDataAttributesRulesInnerDestinationsInner
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **UUID** | The ID of the destination. Required for updating or deleting existing destinations. | [optional] |
+|**destroy** | **Boolean** | Set to true to delete this destination | [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] |
+
+
+
+## Enum: TargetTypeEnum
+
+| Name | Value |
+|---- | -----|
+| SERVICE | "Service" |
+| GROUP | "Group" |
+| FUNCTIONALITY | "Functionality" |
+| ESCALATION_POLICY | "EscalationPolicy" |
+
+
+
diff --git a/docs/RotateApiKey.md b/docs/RotateApiKey.md
new file mode 100644
index 00000000..5b547d69
--- /dev/null
+++ b/docs/RotateApiKey.md
@@ -0,0 +1,13 @@
+
+
+# RotateApiKey
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**RotateApiKeyData**](RotateApiKeyData.md) | | |
+
+
+
diff --git a/docs/RotateApiKeyData.md b/docs/RotateApiKeyData.md
new file mode 100644
index 00000000..815f5808
--- /dev/null
+++ b/docs/RotateApiKeyData.md
@@ -0,0 +1,22 @@
+
+
+# RotateApiKeyData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | [**TypeEnum**](#TypeEnum) | | |
+|**attributes** | [**RotateApiKeyDataAttributes**](RotateApiKeyDataAttributes.md) | | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| API_KEYS | "api_keys" |
+
+
+
diff --git a/docs/RotateApiKeyDataAttributes.md b/docs/RotateApiKeyDataAttributes.md
new file mode 100644
index 00000000..8f5787f2
--- /dev/null
+++ b/docs/RotateApiKeyDataAttributes.md
@@ -0,0 +1,14 @@
+
+
+# RotateApiKeyDataAttributes
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**expiresAt** | **OffsetDateTime** | The new expiration date after rotation (ISO 8601) | [optional] |
+|**gracePeriodMinutes** | **Integer** | How many minutes to keep the old token valid. Only applies when the grace period feature is enabled for your organization. Defaults to 30. | [optional] |
+
+
+
diff --git a/docs/SendMicrosoftTeamsChatMessageTaskParams.md b/docs/SendMicrosoftTeamsChatMessageTaskParams.md
new file mode 100644
index 00000000..4060fcf6
--- /dev/null
+++ b/docs/SendMicrosoftTeamsChatMessageTaskParams.md
@@ -0,0 +1,23 @@
+
+
+# SendMicrosoftTeamsChatMessageTaskParams
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] |
+|**chats** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | |
+|**text** | **String** | The message text | |
+
+
+
+## Enum: TaskTypeEnum
+
+| Name | Value |
+|---- | -----|
+| SEND_MICROSOFT_TEAMS_CHAT_MESSAGE | "send_microsoft_teams_chat_message" |
+
+
+
diff --git a/docs/Sla.md b/docs/Sla.md
new file mode 100644
index 00000000..6091ea77
--- /dev/null
+++ b/docs/Sla.md
@@ -0,0 +1,49 @@
+
+
+# Sla
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**slug** | **String** | The slug of the SLA | [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] |
+|**entityType** | [**EntityTypeEnum**](#EntityTypeEnum) | The entity type this SLA applies to | [optional] |
+|**conditionMatchType** | [**ConditionMatchTypeEnum**](#ConditionMatchTypeEnum) | Whether all or any conditions must match | |
+|**managerRoleId** | **UUID** | The ID of the manager incident role. Exactly one of `manager_role_id` or `manager_user_id` must be provided. | [optional] |
+|**managerUserId** | **Integer** | The ID of the manager user. Exactly one of `manager_role_id` or `manager_user_id` must be provided. | [optional] |
+|**assignmentDeadlineDays** | **Integer** | Number of days for the assignment deadline | |
+|**assignmentDeadlineParentStatus** | **String** | The incident parent status that triggers the assignment deadline | |
+|**assignmentDeadlineSubStatusId** | **UUID** | Sub-status for the assignment deadline. Required when custom lifecycle statuses are enabled on the team. | [optional] |
+|**assignmentSkipWeekends** | **Boolean** | Whether to skip weekends when calculating the assignment deadline | [optional] |
+|**completionDeadlineDays** | **Integer** | Number of days for the completion deadline | |
+|**completionDeadlineParentStatus** | **String** | The incident parent status that triggers the completion deadline | |
+|**completionDeadlineSubStatusId** | **UUID** | Sub-status for the completion deadline. Required when custom lifecycle statuses are enabled on the team. | [optional] |
+|**completionSkipWeekends** | **Boolean** | Whether to skip weekends when calculating the completion deadline | [optional] |
+|**conditions** | [**List<SlaConditionsInner>**](SlaConditionsInner.md) | Conditions that determine which incidents this SLA applies to | [optional] |
+|**notificationConfigurations** | [**List<SlaNotificationConfigurationsInner>**](SlaNotificationConfigurationsInner.md) | Notification timing configurations | [optional] |
+|**createdAt** | **String** | Date of creation | |
+|**updatedAt** | **String** | Date of last update | |
+
+
+
+## Enum: EntityTypeEnum
+
+| Name | Value |
+|---- | -----|
+| FOLLOW_UP | "follow_up" |
+
+
+
+## Enum: ConditionMatchTypeEnum
+
+| Name | Value |
+|---- | -----|
+| ALL | "ALL" |
+| ANY | "ANY" |
+
+
+
diff --git a/docs/SlaConditionsInner.md b/docs/SlaConditionsInner.md
new file mode 100644
index 00000000..a5d0b5bc
--- /dev/null
+++ b/docs/SlaConditionsInner.md
@@ -0,0 +1,28 @@
+
+
+# SlaConditionsInner
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **UUID** | Unique ID of the condition | [optional] |
+|**position** | **Integer** | The position of the condition | [optional] |
+|**conditionableType** | [**ConditionableTypeEnum**](#ConditionableTypeEnum) | The type of condition | [optional] |
+|**property** | **String** | The property to evaluate (for built-in field conditions) | [optional] |
+|**operator** | **String** | The comparison operator | [optional] |
+|**values** | **List<String>** | The values to compare against | [optional] |
+|**formFieldId** | **UUID** | The ID of the form field (for custom field conditions) | [optional] |
+
+
+
+## Enum: ConditionableTypeEnum
+
+| Name | Value |
+|---- | -----|
+| SLAS_BUILT_IN_FIELD_CONDITION | "SLAs::BuiltInFieldCondition" |
+| SLAS_CUSTOM_FIELD_CONDITION | "SLAs::CustomFieldCondition" |
+
+
+
diff --git a/docs/SlaList.md b/docs/SlaList.md
new file mode 100644
index 00000000..79c37c5b
--- /dev/null
+++ b/docs/SlaList.md
@@ -0,0 +1,15 @@
+
+
+# SlaList
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**List<SlaResponseData>**](SlaResponseData.md) | | |
+|**links** | [**Links**](Links.md) | | |
+|**meta** | [**Meta**](Meta.md) | | |
+
+
+
diff --git a/docs/SlaNotificationConfigurationsInner.md b/docs/SlaNotificationConfigurationsInner.md
new file mode 100644
index 00000000..bef53213
--- /dev/null
+++ b/docs/SlaNotificationConfigurationsInner.md
@@ -0,0 +1,27 @@
+
+
+# SlaNotificationConfigurationsInner
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **UUID** | Unique ID of the notification configuration | [optional] |
+|**offsetType** | [**OffsetTypeEnum**](#OffsetTypeEnum) | When to send the notification relative to the deadline | [optional] |
+|**offsetDays** | **Integer** | Number of days offset from the deadline | [optional] |
+|**createdAt** | **String** | Date of creation | [optional] |
+|**updatedAt** | **String** | Date of last update | [optional] |
+
+
+
+## Enum: OffsetTypeEnum
+
+| Name | Value |
+|---- | -----|
+| BEFORE_DUE | "before_due" |
+| WHEN_DUE | "when_due" |
+| AFTER_DUE | "after_due" |
+
+
+
diff --git a/docs/SlaResponse.md b/docs/SlaResponse.md
new file mode 100644
index 00000000..995317e5
--- /dev/null
+++ b/docs/SlaResponse.md
@@ -0,0 +1,13 @@
+
+
+# SlaResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**SlaResponseData**](SlaResponseData.md) | | |
+
+
+
diff --git a/docs/SlaResponseData.md b/docs/SlaResponseData.md
new file mode 100644
index 00000000..c1c394b7
--- /dev/null
+++ b/docs/SlaResponseData.md
@@ -0,0 +1,23 @@
+
+
+# SlaResponseData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | Unique ID of the SLA | |
+|**type** | [**TypeEnum**](#TypeEnum) | | |
+|**attributes** | [**Sla**](Sla.md) | | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| SLAS | "slas" |
+
+
+
diff --git a/docs/SlasApi.md b/docs/SlasApi.md
new file mode 100644
index 00000000..f99a879e
--- /dev/null
+++ b/docs/SlasApi.md
@@ -0,0 +1,373 @@
+# SlasApi
+
+All URIs are relative to *https://api.rootly.com*
+
+| Method | HTTP request | Description |
+|------------- | ------------- | -------------|
+| [**createSLA**](SlasApi.md#createSLA) | **POST** /v1/slas | Creates an SLA |
+| [**deleteSLA**](SlasApi.md#deleteSLA) | **DELETE** /v1/slas/{id} | Delete an SLA |
+| [**getSLA**](SlasApi.md#getSLA) | **GET** /v1/slas/{id} | Retrieves an SLA |
+| [**listSLAs**](SlasApi.md#listSLAs) | **GET** /v1/slas | List SLAs |
+| [**updateSLA**](SlasApi.md#updateSLA) | **PUT** /v1/slas/{id} | Update an SLA |
+
+
+
+# **createSLA**
+> SlaResponse createSLA(newSla)
+
+Creates an SLA
+
+Creates a new SLA 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.SlasApi;
+
+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");
+
+ SlasApi apiInstance = new SlasApi(defaultClient);
+ NewSla newSla = new NewSla(); // NewSla |
+ try {
+ SlaResponse result = apiInstance.createSLA(newSla);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling SlasApi#createSLA");
+ 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 |
+|------------- | ------------- | ------------- | -------------|
+| **newSla** | [**NewSla**](NewSla.md)| | |
+
+### Return type
+
+[**SlaResponse**](SlaResponse.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** | SLA created | - |
+| **422** | invalid request | - |
+| **401** | responds with unauthorized for invalid token | - |
+
+
+# **deleteSLA**
+> SlaResponse deleteSLA(id)
+
+Delete an SLA
+
+Delete a specific SLA 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.SlasApi;
+
+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");
+
+ SlasApi apiInstance = new SlasApi(defaultClient);
+ String id = "id_example"; // String |
+ try {
+ SlaResponse result = apiInstance.deleteSLA(id);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling SlasApi#deleteSLA");
+ 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
+
+[**SlaResponse**](SlaResponse.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** | SLA deleted | - |
+| **404** | resource not found for another team | - |
+
+
+# **getSLA**
+> SlaResponse getSLA(id)
+
+Retrieves an SLA
+
+Retrieves a specific SLA 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.SlasApi;
+
+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");
+
+ SlasApi apiInstance = new SlasApi(defaultClient);
+ String id = "id_example"; // String |
+ try {
+ SlaResponse result = apiInstance.getSLA(id);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling SlasApi#getSLA");
+ 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
+
+[**SlaResponse**](SlaResponse.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** | SLA found | - |
+| **404** | resource not found for another team | - |
+
+
+# **listSLAs**
+> SlaList listSLAs(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort)
+
+List SLAs
+
+List SLAs
+
+### 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.SlasApi;
+
+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");
+
+ SlasApi apiInstance = new SlasApi(defaultClient);
+ Integer pageNumber = 56; // Integer |
+ Integer pageSize = 56; // Integer |
+ String filterSearch = "filterSearch_example"; // String |
+ String filterSlug = "filterSlug_example"; // String |
+ String filterName = "filterName_example"; // String |
+ String filterCreatedAtGt = "filterCreatedAtGt_example"; // String |
+ String filterCreatedAtGte = "filterCreatedAtGte_example"; // String |
+ String filterCreatedAtLt = "filterCreatedAtLt_example"; // String |
+ String filterCreatedAtLte = "filterCreatedAtLte_example"; // String |
+ String sort = "sort_example"; // String |
+ try {
+ SlaList result = apiInstance.listSLAs(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling SlasApi#listSLAs");
+ 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] |
+| **filterSearch** | **String**| | [optional] |
+| **filterSlug** | **String**| | [optional] |
+| **filterName** | **String**| | [optional] |
+| **filterCreatedAtGt** | **String**| | [optional] |
+| **filterCreatedAtGte** | **String**| | [optional] |
+| **filterCreatedAtLt** | **String**| | [optional] |
+| **filterCreatedAtLte** | **String**| | [optional] |
+| **sort** | **String**| | [optional] |
+
+### Return type
+
+[**SlaList**](SlaList.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 | - |
+
+
+# **updateSLA**
+> SlaResponse updateSLA(id, updateSla)
+
+Update an SLA
+
+Update a specific SLA 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.SlasApi;
+
+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");
+
+ SlasApi apiInstance = new SlasApi(defaultClient);
+ String id = "id_example"; // String |
+ UpdateSla updateSla = new UpdateSla(); // UpdateSla |
+ try {
+ SlaResponse result = apiInstance.updateSLA(id, updateSla);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling SlasApi#updateSLA");
+ 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**| | |
+| **updateSla** | [**UpdateSla**](UpdateSla.md)| | |
+
+### Return type
+
+[**SlaResponse**](SlaResponse.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** | SLA updated | - |
+| **404** | resource not found for another team | - |
+
diff --git a/docs/SnoozeAlert.md b/docs/SnoozeAlert.md
new file mode 100644
index 00000000..b74c8b15
--- /dev/null
+++ b/docs/SnoozeAlert.md
@@ -0,0 +1,13 @@
+
+
+# SnoozeAlert
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**SnoozeAlertData**](SnoozeAlertData.md) | | |
+
+
+
diff --git a/docs/SnoozeAlertData.md b/docs/SnoozeAlertData.md
new file mode 100644
index 00000000..3a25c477
--- /dev/null
+++ b/docs/SnoozeAlertData.md
@@ -0,0 +1,22 @@
+
+
+# SnoozeAlertData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | [**TypeEnum**](#TypeEnum) | | |
+|**attributes** | [**SnoozeAlertDataAttributes**](SnoozeAlertDataAttributes.md) | | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| ALERTS | "alerts" |
+
+
+
diff --git a/docs/SnoozeAlertDataAttributes.md b/docs/SnoozeAlertDataAttributes.md
new file mode 100644
index 00000000..fceeb5cb
--- /dev/null
+++ b/docs/SnoozeAlertDataAttributes.md
@@ -0,0 +1,13 @@
+
+
+# SnoozeAlertDataAttributes
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**delayMinutes** | **Integer** | Number of minutes to snooze the alert for | |
+
+
+
diff --git a/docs/UpdateApiKey.md b/docs/UpdateApiKey.md
new file mode 100644
index 00000000..7a2ca98b
--- /dev/null
+++ b/docs/UpdateApiKey.md
@@ -0,0 +1,13 @@
+
+
+# UpdateApiKey
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**UpdateApiKeyData**](UpdateApiKeyData.md) | | |
+
+
+
diff --git a/docs/UpdateApiKeyData.md b/docs/UpdateApiKeyData.md
new file mode 100644
index 00000000..87d5eaad
--- /dev/null
+++ b/docs/UpdateApiKeyData.md
@@ -0,0 +1,22 @@
+
+
+# UpdateApiKeyData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | [**TypeEnum**](#TypeEnum) | | |
+|**attributes** | [**UpdateApiKeyDataAttributes**](UpdateApiKeyDataAttributes.md) | | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| API_KEYS | "api_keys" |
+
+
+
diff --git a/docs/UpdateApiKeyDataAttributes.md b/docs/UpdateApiKeyDataAttributes.md
new file mode 100644
index 00000000..63318369
--- /dev/null
+++ b/docs/UpdateApiKeyDataAttributes.md
@@ -0,0 +1,15 @@
+
+
+# UpdateApiKeyDataAttributes
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**name** | **String** | The name of the API key | [optional] |
+|**description** | **String** | A description of the API key | [optional] |
+|**expiresAt** | **OffsetDateTime** | The expiration date of the API key (ISO 8601) | [optional] |
+
+
+
diff --git a/docs/UpdateCatalogChecklistTemplate.md b/docs/UpdateCatalogChecklistTemplate.md
new file mode 100644
index 00000000..1afbc35c
--- /dev/null
+++ b/docs/UpdateCatalogChecklistTemplate.md
@@ -0,0 +1,13 @@
+
+
+# UpdateCatalogChecklistTemplate
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**UpdateCatalogChecklistTemplateData**](UpdateCatalogChecklistTemplateData.md) | | |
+
+
+
diff --git a/docs/UpdateCatalogChecklistTemplateData.md b/docs/UpdateCatalogChecklistTemplateData.md
new file mode 100644
index 00000000..9aec1852
--- /dev/null
+++ b/docs/UpdateCatalogChecklistTemplateData.md
@@ -0,0 +1,22 @@
+
+
+# UpdateCatalogChecklistTemplateData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | [**TypeEnum**](#TypeEnum) | | |
+|**attributes** | [**UpdateCatalogChecklistTemplateDataAttributes**](UpdateCatalogChecklistTemplateDataAttributes.md) | | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| CATALOG_CHECKLIST_TEMPLATES | "catalog_checklist_templates" |
+
+
+
diff --git a/docs/UpdateCatalogChecklistTemplateDataAttributes.md b/docs/UpdateCatalogChecklistTemplateDataAttributes.md
new file mode 100644
index 00000000..fbde1735
--- /dev/null
+++ b/docs/UpdateCatalogChecklistTemplateDataAttributes.md
@@ -0,0 +1,16 @@
+
+
+# UpdateCatalogChecklistTemplateDataAttributes
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**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] |
+|**owners** | [**List<NewCatalogChecklistTemplateDataAttributesOwnersInner>**](NewCatalogChecklistTemplateDataAttributesOwnersInner.md) | Template owners. Replaces all existing owners. | [optional] |
+
+
+
diff --git a/docs/UpdateCatalogProperty.md b/docs/UpdateCatalogProperty.md
new file mode 100644
index 00000000..9d08e98b
--- /dev/null
+++ b/docs/UpdateCatalogProperty.md
@@ -0,0 +1,13 @@
+
+
+# UpdateCatalogProperty
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**UpdateCatalogPropertyData**](UpdateCatalogPropertyData.md) | | |
+
+
+
diff --git a/docs/UpdateCatalogPropertyData.md b/docs/UpdateCatalogPropertyData.md
new file mode 100644
index 00000000..55927c6c
--- /dev/null
+++ b/docs/UpdateCatalogPropertyData.md
@@ -0,0 +1,22 @@
+
+
+# UpdateCatalogPropertyData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | [**TypeEnum**](#TypeEnum) | | |
+|**attributes** | [**UpdateCatalogPropertyDataAttributes**](UpdateCatalogPropertyDataAttributes.md) | | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| CATALOG_PROPERTIES | "catalog_properties" |
+
+
+
diff --git a/docs/UpdateCatalogPropertyDataAttributes.md b/docs/UpdateCatalogPropertyDataAttributes.md
new file mode 100644
index 00000000..7428435f
--- /dev/null
+++ b/docs/UpdateCatalogPropertyDataAttributes.md
@@ -0,0 +1,50 @@
+
+
+# UpdateCatalogPropertyDataAttributes
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**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] |
+
+
+
+## Enum: KindEnum
+
+| Name | Value |
+|---- | -----|
+| TEXT | "text" |
+| REFERENCE | "reference" |
+| BOOLEAN | "boolean" |
+| REFERENCE2 | "reference" |
+| 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/UpdateEdgeConnectorActionRequest.md b/docs/UpdateEdgeConnectorActionRequest.md
new file mode 100644
index 00000000..592db923
--- /dev/null
+++ b/docs/UpdateEdgeConnectorActionRequest.md
@@ -0,0 +1,13 @@
+
+
+# UpdateEdgeConnectorActionRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**action** | [**UpdateEdgeConnectorActionRequestAction**](UpdateEdgeConnectorActionRequestAction.md) | | [optional] |
+
+
+
diff --git a/docs/UpdateEdgeConnectorActionRequestAction.md b/docs/UpdateEdgeConnectorActionRequestAction.md
new file mode 100644
index 00000000..3eab1774
--- /dev/null
+++ b/docs/UpdateEdgeConnectorActionRequestAction.md
@@ -0,0 +1,24 @@
+
+
+# UpdateEdgeConnectorActionRequestAction
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**name** | **String** | | [optional] |
+|**actionType** | [**ActionTypeEnum**](#ActionTypeEnum) | | [optional] |
+|**metadata** | **Object** | | [optional] |
+
+
+
+## Enum: ActionTypeEnum
+
+| Name | Value |
+|---- | -----|
+| SCRIPT | "script" |
+| HTTP | "http" |
+
+
+
diff --git a/docs/UpdateEdgeConnectorRequest.md b/docs/UpdateEdgeConnectorRequest.md
new file mode 100644
index 00000000..0c598e04
--- /dev/null
+++ b/docs/UpdateEdgeConnectorRequest.md
@@ -0,0 +1,13 @@
+
+
+# UpdateEdgeConnectorRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**UpdateEdgeConnectorRequestData**](UpdateEdgeConnectorRequestData.md) | | [optional] |
+
+
+
diff --git a/docs/UpdateEdgeConnectorRequestData.md b/docs/UpdateEdgeConnectorRequestData.md
new file mode 100644
index 00000000..3954738f
--- /dev/null
+++ b/docs/UpdateEdgeConnectorRequestData.md
@@ -0,0 +1,23 @@
+
+
+# UpdateEdgeConnectorRequestData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | [**TypeEnum**](#TypeEnum) | | [optional] |
+|**id** | **String** | | [optional] |
+|**attributes** | [**UpdateEdgeConnectorRequestDataAttributes**](UpdateEdgeConnectorRequestDataAttributes.md) | | [optional] |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| EDGE_CONNECTORS | "edge_connectors" |
+
+
+
diff --git a/docs/UpdateEdgeConnectorRequestDataAttributes.md b/docs/UpdateEdgeConnectorRequestDataAttributes.md
new file mode 100644
index 00000000..23a8749c
--- /dev/null
+++ b/docs/UpdateEdgeConnectorRequestDataAttributes.md
@@ -0,0 +1,25 @@
+
+
+# UpdateEdgeConnectorRequestDataAttributes
+
+
+## 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/UpdateGithubIssueTaskParamsRepository.md b/docs/UpdateGithubIssueTaskParamsRepository.md
new file mode 100644
index 00000000..b1f4b81e
--- /dev/null
+++ b/docs/UpdateGithubIssueTaskParamsRepository.md
@@ -0,0 +1,15 @@
+
+
+# UpdateGithubIssueTaskParamsRepository
+
+The repository (used for loading labels and issue types)
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | | [optional] |
+|**name** | **String** | | [optional] |
+
+
+
diff --git a/docs/UpdateOnCallPayReport.md b/docs/UpdateOnCallPayReport.md
new file mode 100644
index 00000000..168929cf
--- /dev/null
+++ b/docs/UpdateOnCallPayReport.md
@@ -0,0 +1,13 @@
+
+
+# UpdateOnCallPayReport
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**UpdateOnCallPayReportData**](UpdateOnCallPayReportData.md) | | |
+
+
+
diff --git a/docs/UpdateOnCallPayReportData.md b/docs/UpdateOnCallPayReportData.md
new file mode 100644
index 00000000..f1580b97
--- /dev/null
+++ b/docs/UpdateOnCallPayReportData.md
@@ -0,0 +1,22 @@
+
+
+# UpdateOnCallPayReportData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | [**TypeEnum**](#TypeEnum) | | |
+|**attributes** | [**UpdateOnCallPayReportDataAttributes**](UpdateOnCallPayReportDataAttributes.md) | | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| ON_CALL_PAY_REPORTS | "on_call_pay_reports" |
+
+
+
diff --git a/docs/UpdateOnCallPayReportDataAttributes.md b/docs/UpdateOnCallPayReportDataAttributes.md
new file mode 100644
index 00000000..fa107179
--- /dev/null
+++ b/docs/UpdateOnCallPayReportDataAttributes.md
@@ -0,0 +1,15 @@
+
+
+# UpdateOnCallPayReportDataAttributes
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**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] |
+
+
+
diff --git a/docs/UpdateSla.md b/docs/UpdateSla.md
new file mode 100644
index 00000000..a6568546
--- /dev/null
+++ b/docs/UpdateSla.md
@@ -0,0 +1,13 @@
+
+
+# UpdateSla
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**UpdateSlaData**](UpdateSlaData.md) | | |
+
+
+
diff --git a/docs/UpdateSlaData.md b/docs/UpdateSlaData.md
new file mode 100644
index 00000000..4c00f861
--- /dev/null
+++ b/docs/UpdateSlaData.md
@@ -0,0 +1,22 @@
+
+
+# UpdateSlaData
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**type** | [**TypeEnum**](#TypeEnum) | | |
+|**attributes** | [**UpdateSlaDataAttributes**](UpdateSlaDataAttributes.md) | | |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| SLAS | "slas" |
+
+
+
diff --git a/docs/UpdateSlaDataAttributes.md b/docs/UpdateSlaDataAttributes.md
new file mode 100644
index 00000000..d9131a26
--- /dev/null
+++ b/docs/UpdateSlaDataAttributes.md
@@ -0,0 +1,97 @@
+
+
+# UpdateSlaDataAttributes
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**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] |
+|**conditionMatchType** | [**ConditionMatchTypeEnum**](#ConditionMatchTypeEnum) | Whether all or any conditions must match | [optional] |
+|**managerRoleId** | **UUID** | The ID of the incident role responsible for this SLA. Exactly one of `manager_role_id` or `manager_user_id` must be provided. | [optional] |
+|**managerUserId** | **Integer** | The ID of the user responsible for this SLA. Exactly one of `manager_role_id` or `manager_user_id` must be provided. | [optional] |
+|**assignmentDeadlineDays** | [**AssignmentDeadlineDaysEnum**](#AssignmentDeadlineDaysEnum) | Number of days for the assignment deadline | [optional] |
+|**assignmentDeadlineParentStatus** | [**AssignmentDeadlineParentStatusEnum**](#AssignmentDeadlineParentStatusEnum) | The incident parent status that triggers the assignment deadline | [optional] |
+|**assignmentDeadlineSubStatusId** | **UUID** | Sub-status for the assignment deadline. Required when custom lifecycle statuses are enabled on the team. | [optional] |
+|**assignmentSkipWeekends** | **Boolean** | Whether to skip weekends when calculating the assignment deadline | [optional] |
+|**completionDeadlineDays** | [**CompletionDeadlineDaysEnum**](#CompletionDeadlineDaysEnum) | Number of days for the completion deadline | [optional] |
+|**completionDeadlineParentStatus** | [**CompletionDeadlineParentStatusEnum**](#CompletionDeadlineParentStatusEnum) | The incident parent status that triggers the completion deadline | [optional] |
+|**completionDeadlineSubStatusId** | **UUID** | Sub-status for the completion deadline. Required when custom lifecycle statuses are enabled on the team. | [optional] |
+|**completionSkipWeekends** | **Boolean** | Whether to skip weekends when calculating the completion deadline | [optional] |
+|**conditions** | [**List<NewSlaDataAttributesConditionsInner>**](NewSlaDataAttributesConditionsInner.md) | Conditions that determine which incidents this SLA applies to. Replaces all existing conditions. | [optional] |
+|**notificationConfigurations** | [**List<NewSlaDataAttributesNotificationConfigurationsInner>**](NewSlaDataAttributesNotificationConfigurationsInner.md) | Notification timing configurations. Replaces all existing configurations. | [optional] |
+
+
+
+## Enum: ConditionMatchTypeEnum
+
+| Name | Value |
+|---- | -----|
+| ALL | "ALL" |
+| ANY | "ANY" |
+
+
+
+## Enum: AssignmentDeadlineDaysEnum
+
+| Name | Value |
+|---- | -----|
+| NUMBER_1 | 1 |
+| NUMBER_2 | 2 |
+| NUMBER_3 | 3 |
+| NUMBER_4 | 4 |
+| NUMBER_5 | 5 |
+| NUMBER_6 | 6 |
+| NUMBER_7 | 7 |
+| NUMBER_14 | 14 |
+| NUMBER_21 | 21 |
+| NUMBER_30 | 30 |
+
+
+
+## Enum: AssignmentDeadlineParentStatusEnum
+
+| Name | Value |
+|---- | -----|
+| IN_TRIAGE | "in_triage" |
+| STARTED | "started" |
+| MITIGATED | "mitigated" |
+| RESOLVED | "resolved" |
+| CLOSED | "closed" |
+| CANCELLED | "cancelled" |
+
+
+
+## Enum: CompletionDeadlineDaysEnum
+
+| Name | Value |
+|---- | -----|
+| NUMBER_1 | 1 |
+| NUMBER_2 | 2 |
+| NUMBER_3 | 3 |
+| NUMBER_4 | 4 |
+| NUMBER_5 | 5 |
+| NUMBER_6 | 6 |
+| NUMBER_7 | 7 |
+| NUMBER_14 | 14 |
+| NUMBER_21 | 21 |
+| NUMBER_30 | 30 |
+
+
+
+## Enum: CompletionDeadlineParentStatusEnum
+
+| Name | Value |
+|---- | -----|
+| IN_TRIAGE | "in_triage" |
+| STARTED | "started" |
+| MITIGATED | "mitigated" |
+| RESOLVED | "resolved" |
+| CLOSED | "closed" |
+| CANCELLED | "cancelled" |
+
+
+
diff --git a/src/main/java/com/rootly/client/api/ApiKeysApi.java b/src/main/java/com/rootly/client/api/ApiKeysApi.java
new file mode 100644
index 00000000..784b2bd8
--- /dev/null
+++ b/src/main/java/com/rootly/client/api/ApiKeysApi.java
@@ -0,0 +1,1077 @@
+/*
+ * Rootly API v1
+ * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ```
+ *
+ * The version of the OpenAPI document: v1
+ *
+ *
+ * NOTE: This class 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.ApiKeyList;
+import com.rootly.client.model.ApiKeyResponse;
+import com.rootly.client.model.ApiKeyWithTokenResponse;
+import com.rootly.client.model.ErrorsList;
+import com.rootly.client.model.NewApiKey;
+import com.rootly.client.model.RotateApiKey;
+import java.util.UUID;
+import com.rootly.client.model.UpdateApiKey;
+
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class ApiKeysApi {
+ private ApiClient localVarApiClient;
+ private int localHostIndex;
+ private String localCustomBaseUrl;
+
+ public ApiKeysApi() {
+ this(Configuration.getDefaultApiClient());
+ }
+
+ public ApiKeysApi(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 createApiKey
+ * @param newApiKey (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 | API key created | - |
+ | 422 | invalid request | - |
+ | 401 | responds with unauthorized for invalid token | - |
+
+ */
+ public okhttp3.Call createApiKeyCall(@javax.annotation.Nonnull NewApiKey newApiKey, 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 = newApiKey;
+
+ // create path and map variables
+ String localVarPath = "/v1/api_keys";
+
+ 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 createApiKeyValidateBeforeCall(@javax.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)");
+ }
+
+ return createApiKeyCall(newApiKey, _callback);
+
+ }
+
+ /**
+ * Creates an API key
+ * 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.
+ * @param newApiKey (required)
+ * @return ApiKeyWithTokenResponse
+ * @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 | API key created | - |
+ | 422 | invalid request | - |
+ | 401 | responds with unauthorized for invalid token | - |
+
+ */
+ public ApiKeyWithTokenResponse createApiKey(@javax.annotation.Nonnull NewApiKey newApiKey) throws ApiException {
+ ApiResponse localVarResp = createApiKeyWithHttpInfo(newApiKey);
+ return localVarResp.getData();
+ }
+
+ /**
+ * Creates an API key
+ * 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.
+ * @param newApiKey (required)
+ * @return ApiResponse<ApiKeyWithTokenResponse>
+ * @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 | API key created | - |
+ | 422 | invalid request | - |
+ | 401 | responds with unauthorized for invalid token | - |
+
+ */
+ public ApiResponse createApiKeyWithHttpInfo(@javax.annotation.Nonnull NewApiKey newApiKey) throws ApiException {
+ okhttp3.Call localVarCall = createApiKeyValidateBeforeCall(newApiKey, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ return localVarApiClient.execute(localVarCall, localVarReturnType);
+ }
+
+ /**
+ * Creates an API key (asynchronously)
+ * 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.
+ * @param newApiKey (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 | API key created | - |
+ | 422 | invalid request | - |
+ | 401 | responds with unauthorized for invalid token | - |
+
+ */
+ public okhttp3.Call createApiKeyAsync(@javax.annotation.Nonnull NewApiKey newApiKey, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = createApiKeyValidateBeforeCall(newApiKey, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for deleteApiKey
+ * @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 | API key revoked | - |
+ | 404 | API key not found | - |
+
+ */
+ public okhttp3.Call deleteApiKeyCall(@javax.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/api_keys/{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 deleteApiKeyValidateBeforeCall(@javax.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)");
+ }
+
+ return deleteApiKeyCall(id, _callback);
+
+ }
+
+ /**
+ * Revoke an API key
+ * 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.
+ * @param id (required)
+ * @return ApiKeyResponse
+ * @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 | API key revoked | - |
+ | 404 | API key not found | - |
+
+ */
+ public ApiKeyResponse deleteApiKey(@javax.annotation.Nonnull UUID id) throws ApiException {
+ ApiResponse localVarResp = deleteApiKeyWithHttpInfo(id);
+ return localVarResp.getData();
+ }
+
+ /**
+ * Revoke an API key
+ * 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.
+ * @param id (required)
+ * @return ApiResponse<ApiKeyResponse>
+ * @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 | API key revoked | - |
+ | 404 | API key not found | - |
+
+ */
+ public ApiResponse deleteApiKeyWithHttpInfo(@javax.annotation.Nonnull UUID id) throws ApiException {
+ okhttp3.Call localVarCall = deleteApiKeyValidateBeforeCall(id, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ return localVarApiClient.execute(localVarCall, localVarReturnType);
+ }
+
+ /**
+ * Revoke an API key (asynchronously)
+ * 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.
+ * @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 | API key revoked | - |
+ | 404 | API key not found | - |
+
+ */
+ public okhttp3.Call deleteApiKeyAsync(@javax.annotation.Nonnull UUID id, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = deleteApiKeyValidateBeforeCall(id, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for getApiKey
+ * @param id (required)
+ * @param include Comma-separated list of relationships to include (role, on_call_role, created_by, groups) (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 | API key found | - |
+ | 404 | API key not found | - |
+
+ */
+ public okhttp3.Call getApiKeyCall(@javax.annotation.Nonnull UUID id, @javax.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/api_keys/{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 getApiKeyValidateBeforeCall(@javax.annotation.Nonnull UUID id, @javax.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)");
+ }
+
+ return getApiKeyCall(id, include, _callback);
+
+ }
+
+ /**
+ * Retrieves an API key
+ * 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.
+ * @param id (required)
+ * @param include Comma-separated list of relationships to include (role, on_call_role, created_by, groups) (optional)
+ * @return ApiKeyResponse
+ * @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 | API key found | - |
+ | 404 | API key not found | - |
+
+ */
+ public ApiKeyResponse getApiKey(@javax.annotation.Nonnull UUID id, @javax.annotation.Nullable String include) throws ApiException {
+ ApiResponse localVarResp = getApiKeyWithHttpInfo(id, include);
+ return localVarResp.getData();
+ }
+
+ /**
+ * Retrieves an API key
+ * 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.
+ * @param id (required)
+ * @param include Comma-separated list of relationships to include (role, on_call_role, created_by, groups) (optional)
+ * @return ApiResponse<ApiKeyResponse>
+ * @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 | API key found | - |
+ | 404 | API key not found | - |
+
+ */
+ public ApiResponse getApiKeyWithHttpInfo(@javax.annotation.Nonnull UUID id, @javax.annotation.Nullable String include) throws ApiException {
+ okhttp3.Call localVarCall = getApiKeyValidateBeforeCall(id, include, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ return localVarApiClient.execute(localVarCall, localVarReturnType);
+ }
+
+ /**
+ * Retrieves an API key (asynchronously)
+ * 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.
+ * @param id (required)
+ * @param include Comma-separated list of relationships to include (role, on_call_role, created_by, groups) (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 | API key found | - |
+ | 404 | API key not found | - |
+
+ */
+ public okhttp3.Call getApiKeyAsync(@javax.annotation.Nonnull UUID id, @javax.annotation.Nullable String include, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = getApiKeyValidateBeforeCall(id, include, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for listApiKeys
+ * @param include Comma-separated list of relationships to include (role, on_call_role, created_by, groups) (optional)
+ * @param pageNumber (optional)
+ * @param pageSize (optional)
+ * @param filterKind Filter by API key kind: personal, team, organization (optional)
+ * @param filterSearch Search by name (case-insensitive partial match) (optional)
+ * @param filterName Filter by exact name (optional)
+ * @param filterUserId Filter by the user ID that owns the key (optional)
+ * @param filterGroupIds Filter team keys by group IDs (comma-separated) (optional)
+ * @param filterRoleId Filter by role ID (optional)
+ * @param filterActive When true, return only non-expired keys (optional)
+ * @param filterExpired When true, return only expired keys (optional)
+ * @param filterCreatedAtGt Created after (ISO 8601) (optional)
+ * @param filterCreatedAtGte Created at or after (ISO 8601) (optional)
+ * @param filterCreatedAtLt Created before (ISO 8601) (optional)
+ * @param filterCreatedAtLte Created at or before (ISO 8601) (optional)
+ * @param filterExpiresAtGt Expires after (ISO 8601) (optional)
+ * @param filterExpiresAtGte Expires at or after (ISO 8601) (optional)
+ * @param filterExpiresAtLt Expires before (ISO 8601). Useful for finding keys approaching expiration. (optional)
+ * @param filterExpiresAtLte Expires at or before (ISO 8601) (optional)
+ * @param filterLastUsedAtGt Last used after (ISO 8601) (optional)
+ * @param filterLastUsedAtGte Last used at or after (ISO 8601) (optional)
+ * @param filterLastUsedAtLt Last used before (ISO 8601) (optional)
+ * @param filterLastUsedAtLte Last used at or before (ISO 8601) (optional)
+ * @param sort Sort by field. Prefix with - for descending (e.g., -created_at, expires_at) (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 | - |
+ | 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 {
+ 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/api_keys";
+
+ 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));
+ }
+
+ if (filterKind != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind]", filterKind));
+ }
+
+ if (filterSearch != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[search]", filterSearch));
+ }
+
+ if (filterName != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name]", filterName));
+ }
+
+ if (filterUserId != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[user_id]", filterUserId));
+ }
+
+ if (filterGroupIds != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[group_ids]", filterGroupIds));
+ }
+
+ if (filterRoleId != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[role_id]", filterRoleId));
+ }
+
+ if (filterActive != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[active]", filterActive));
+ }
+
+ if (filterExpired != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[expired]", filterExpired));
+ }
+
+ 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 (filterExpiresAtGt != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[expires_at][gt]", filterExpiresAtGt));
+ }
+
+ if (filterExpiresAtGte != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[expires_at][gte]", filterExpiresAtGte));
+ }
+
+ if (filterExpiresAtLt != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[expires_at][lt]", filterExpiresAtLt));
+ }
+
+ if (filterExpiresAtLte != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[expires_at][lte]", filterExpiresAtLte));
+ }
+
+ if (filterLastUsedAtGt != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[last_used_at][gt]", filterLastUsedAtGt));
+ }
+
+ if (filterLastUsedAtGte != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[last_used_at][gte]", filterLastUsedAtGte));
+ }
+
+ if (filterLastUsedAtLt != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[last_used_at][lt]", filterLastUsedAtLt));
+ }
+
+ if (filterLastUsedAtLte != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[last_used_at][lte]", filterLastUsedAtLte));
+ }
+
+ if (sort != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort));
+ }
+
+ 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 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 {
+ 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);
+
+ }
+
+ /**
+ * List API keys
+ * 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`.
+ * @param include Comma-separated list of relationships to include (role, on_call_role, created_by, groups) (optional)
+ * @param pageNumber (optional)
+ * @param pageSize (optional)
+ * @param filterKind Filter by API key kind: personal, team, organization (optional)
+ * @param filterSearch Search by name (case-insensitive partial match) (optional)
+ * @param filterName Filter by exact name (optional)
+ * @param filterUserId Filter by the user ID that owns the key (optional)
+ * @param filterGroupIds Filter team keys by group IDs (comma-separated) (optional)
+ * @param filterRoleId Filter by role ID (optional)
+ * @param filterActive When true, return only non-expired keys (optional)
+ * @param filterExpired When true, return only expired keys (optional)
+ * @param filterCreatedAtGt Created after (ISO 8601) (optional)
+ * @param filterCreatedAtGte Created at or after (ISO 8601) (optional)
+ * @param filterCreatedAtLt Created before (ISO 8601) (optional)
+ * @param filterCreatedAtLte Created at or before (ISO 8601) (optional)
+ * @param filterExpiresAtGt Expires after (ISO 8601) (optional)
+ * @param filterExpiresAtGte Expires at or after (ISO 8601) (optional)
+ * @param filterExpiresAtLt Expires before (ISO 8601). Useful for finding keys approaching expiration. (optional)
+ * @param filterExpiresAtLte Expires at or before (ISO 8601) (optional)
+ * @param filterLastUsedAtGt Last used after (ISO 8601) (optional)
+ * @param filterLastUsedAtGte Last used at or after (ISO 8601) (optional)
+ * @param filterLastUsedAtLt Last used before (ISO 8601) (optional)
+ * @param filterLastUsedAtLte Last used at or before (ISO 8601) (optional)
+ * @param sort Sort by field. Prefix with - for descending (e.g., -created_at, expires_at) (optional)
+ * @return ApiKeyList
+ * @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 | - |
+ | 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 {
+ 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();
+ }
+
+ /**
+ * List API keys
+ * 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`.
+ * @param include Comma-separated list of relationships to include (role, on_call_role, created_by, groups) (optional)
+ * @param pageNumber (optional)
+ * @param pageSize (optional)
+ * @param filterKind Filter by API key kind: personal, team, organization (optional)
+ * @param filterSearch Search by name (case-insensitive partial match) (optional)
+ * @param filterName Filter by exact name (optional)
+ * @param filterUserId Filter by the user ID that owns the key (optional)
+ * @param filterGroupIds Filter team keys by group IDs (comma-separated) (optional)
+ * @param filterRoleId Filter by role ID (optional)
+ * @param filterActive When true, return only non-expired keys (optional)
+ * @param filterExpired When true, return only expired keys (optional)
+ * @param filterCreatedAtGt Created after (ISO 8601) (optional)
+ * @param filterCreatedAtGte Created at or after (ISO 8601) (optional)
+ * @param filterCreatedAtLt Created before (ISO 8601) (optional)
+ * @param filterCreatedAtLte Created at or before (ISO 8601) (optional)
+ * @param filterExpiresAtGt Expires after (ISO 8601) (optional)
+ * @param filterExpiresAtGte Expires at or after (ISO 8601) (optional)
+ * @param filterExpiresAtLt Expires before (ISO 8601). Useful for finding keys approaching expiration. (optional)
+ * @param filterExpiresAtLte Expires at or before (ISO 8601) (optional)
+ * @param filterLastUsedAtGt Last used after (ISO 8601) (optional)
+ * @param filterLastUsedAtGte Last used at or after (ISO 8601) (optional)
+ * @param filterLastUsedAtLt Last used before (ISO 8601) (optional)
+ * @param filterLastUsedAtLte Last used at or before (ISO 8601) (optional)
+ * @param sort Sort by field. Prefix with - for descending (e.g., -created_at, expires_at) (optional)
+ * @return ApiResponse<ApiKeyList>
+ * @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 | - |
+ | 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 {
+ 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);
+ }
+
+ /**
+ * List API keys (asynchronously)
+ * 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`.
+ * @param include Comma-separated list of relationships to include (role, on_call_role, created_by, groups) (optional)
+ * @param pageNumber (optional)
+ * @param pageSize (optional)
+ * @param filterKind Filter by API key kind: personal, team, organization (optional)
+ * @param filterSearch Search by name (case-insensitive partial match) (optional)
+ * @param filterName Filter by exact name (optional)
+ * @param filterUserId Filter by the user ID that owns the key (optional)
+ * @param filterGroupIds Filter team keys by group IDs (comma-separated) (optional)
+ * @param filterRoleId Filter by role ID (optional)
+ * @param filterActive When true, return only non-expired keys (optional)
+ * @param filterExpired When true, return only expired keys (optional)
+ * @param filterCreatedAtGt Created after (ISO 8601) (optional)
+ * @param filterCreatedAtGte Created at or after (ISO 8601) (optional)
+ * @param filterCreatedAtLt Created before (ISO 8601) (optional)
+ * @param filterCreatedAtLte Created at or before (ISO 8601) (optional)
+ * @param filterExpiresAtGt Expires after (ISO 8601) (optional)
+ * @param filterExpiresAtGte Expires at or after (ISO 8601) (optional)
+ * @param filterExpiresAtLt Expires before (ISO 8601). Useful for finding keys approaching expiration. (optional)
+ * @param filterExpiresAtLte Expires at or before (ISO 8601) (optional)
+ * @param filterLastUsedAtGt Last used after (ISO 8601) (optional)
+ * @param filterLastUsedAtGte Last used at or after (ISO 8601) (optional)
+ * @param filterLastUsedAtLt Last used before (ISO 8601) (optional)
+ * @param filterLastUsedAtLte Last used at or before (ISO 8601) (optional)
+ * @param sort Sort by field. Prefix with - for descending (e.g., -created_at, expires_at) (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 | - |
+ | 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 {
+
+ 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();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for rotateApiKey
+ * @param id (required)
+ * @param rotateApiKey (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 | API key rotated | - |
+ | 404 | API key not found | - |
+
+ */
+ public okhttp3.Call rotateApiKeyCall(@javax.annotation.Nonnull String id, @javax.annotation.Nullable RotateApiKey rotateApiKey, 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 = rotateApiKey;
+
+ // create path and map variables
+ String localVarPath = "/v1/api_keys/{id}/rotate"
+ .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 rotateApiKeyValidateBeforeCall(@javax.annotation.Nonnull String id, @javax.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)");
+ }
+
+ return rotateApiKeyCall(id, rotateApiKey, _callback);
+
+ }
+
+ /**
+ * Rotate an API key
+ * 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.
+ * @param id (required)
+ * @param rotateApiKey (optional)
+ * @return ApiKeyWithTokenResponse
+ * @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 | API key rotated | - |
+ | 404 | API key not found | - |
+
+ */
+ public ApiKeyWithTokenResponse rotateApiKey(@javax.annotation.Nonnull String id, @javax.annotation.Nullable RotateApiKey rotateApiKey) throws ApiException {
+ ApiResponse localVarResp = rotateApiKeyWithHttpInfo(id, rotateApiKey);
+ return localVarResp.getData();
+ }
+
+ /**
+ * Rotate an API key
+ * 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.
+ * @param id (required)
+ * @param rotateApiKey (optional)
+ * @return ApiResponse<ApiKeyWithTokenResponse>
+ * @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 | API key rotated | - |
+ | 404 | API key not found | - |
+
+ */
+ public ApiResponse rotateApiKeyWithHttpInfo(@javax.annotation.Nonnull String id, @javax.annotation.Nullable RotateApiKey rotateApiKey) throws ApiException {
+ okhttp3.Call localVarCall = rotateApiKeyValidateBeforeCall(id, rotateApiKey, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ return localVarApiClient.execute(localVarCall, localVarReturnType);
+ }
+
+ /**
+ * Rotate an API key (asynchronously)
+ * 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.
+ * @param id (required)
+ * @param rotateApiKey (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 | API key rotated | - |
+ | 404 | API key not found | - |
+
+ */
+ public okhttp3.Call rotateApiKeyAsync(@javax.annotation.Nonnull String id, @javax.annotation.Nullable RotateApiKey rotateApiKey, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = rotateApiKeyValidateBeforeCall(id, rotateApiKey, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for updateApiKey
+ * @param id (required)
+ * @param updateApiKey (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 | API key updated | - |
+ | 404 | API key not found | - |
+
+ */
+ public okhttp3.Call updateApiKeyCall(@javax.annotation.Nonnull UUID id, @javax.annotation.Nonnull UpdateApiKey updateApiKey, 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 = updateApiKey;
+
+ // create path and map variables
+ String localVarPath = "/v1/api_keys/{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 updateApiKeyValidateBeforeCall(@javax.annotation.Nonnull UUID id, @javax.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)");
+ }
+
+ // verify the required parameter 'updateApiKey' is set
+ if (updateApiKey == null) {
+ throw new ApiException("Missing the required parameter 'updateApiKey' when calling updateApiKey(Async)");
+ }
+
+ return updateApiKeyCall(id, updateApiKey, _callback);
+
+ }
+
+ /**
+ * Update an API key
+ * 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.
+ * @param id (required)
+ * @param updateApiKey (required)
+ * @return ApiKeyResponse
+ * @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 | API key updated | - |
+ | 404 | API key not found | - |
+
+ */
+ public ApiKeyResponse updateApiKey(@javax.annotation.Nonnull UUID id, @javax.annotation.Nonnull UpdateApiKey updateApiKey) throws ApiException {
+ ApiResponse localVarResp = updateApiKeyWithHttpInfo(id, updateApiKey);
+ return localVarResp.getData();
+ }
+
+ /**
+ * Update an API key
+ * 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.
+ * @param id (required)
+ * @param updateApiKey (required)
+ * @return ApiResponse<ApiKeyResponse>
+ * @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 | API key updated | - |
+ | 404 | API key not found | - |
+
+ */
+ public ApiResponse updateApiKeyWithHttpInfo(@javax.annotation.Nonnull UUID id, @javax.annotation.Nonnull UpdateApiKey updateApiKey) throws ApiException {
+ okhttp3.Call localVarCall = updateApiKeyValidateBeforeCall(id, updateApiKey, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ return localVarApiClient.execute(localVarCall, localVarReturnType);
+ }
+
+ /**
+ * Update an API key (asynchronously)
+ * 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.
+ * @param id (required)
+ * @param updateApiKey (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 | API key updated | - |
+ | 404 | API key not found | - |
+
+ */
+ public okhttp3.Call updateApiKeyAsync(@javax.annotation.Nonnull UUID id, @javax.annotation.Nonnull UpdateApiKey updateApiKey, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = updateApiKeyValidateBeforeCall(id, updateApiKey, _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
new file mode 100644
index 00000000..11833c75
--- /dev/null
+++ b/src/main/java/com/rootly/client/api/CatalogChecklistTemplatesApi.java
@@ -0,0 +1,958 @@
+/*
+ * Rootly API v1
+ * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ```
+ *
+ * The version of the OpenAPI document: v1
+ *
+ *
+ * NOTE: This class 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.CatalogChecklistTemplateList;
+import com.rootly.client.model.CatalogChecklistTemplateResponse;
+import com.rootly.client.model.ErrorsList;
+import com.rootly.client.model.GetAlertFieldIdParameter;
+import com.rootly.client.model.NewCatalogChecklistTemplate;
+import com.rootly.client.model.UpdateCatalogChecklistTemplate;
+
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class CatalogChecklistTemplatesApi {
+ private ApiClient localVarApiClient;
+ private int localHostIndex;
+ private String localCustomBaseUrl;
+
+ public CatalogChecklistTemplatesApi() {
+ this(Configuration.getDefaultApiClient());
+ }
+
+ public CatalogChecklistTemplatesApi(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 createCatalogChecklistTemplate
+ * @param newCatalogChecklistTemplate (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 | ignores user-provided field_key for custom fields | - |
+ | 422 | returns 422 when scope_type is missing for Catalog scope_id | - |
+ | 401 | responds with unauthorized for invalid token | - |
+
+ */
+ public okhttp3.Call createCatalogChecklistTemplateCall(@javax.annotation.Nonnull NewCatalogChecklistTemplate newCatalogChecklistTemplate, 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 = newCatalogChecklistTemplate;
+
+ // create path and map variables
+ String localVarPath = "/v1/catalog_checklist_templates";
+
+ 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 createCatalogChecklistTemplateValidateBeforeCall(@javax.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)");
+ }
+
+ return createCatalogChecklistTemplateCall(newCatalogChecklistTemplate, _callback);
+
+ }
+
+ /**
+ * Creates a catalog checklist template
+ * Creates a new catalog checklist template
+ * @param newCatalogChecklistTemplate (required)
+ * @return CatalogChecklistTemplateResponse
+ * @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 | ignores user-provided field_key for custom fields | - |
+ | 422 | returns 422 when scope_type is missing for Catalog scope_id | - |
+ | 401 | responds with unauthorized for invalid token | - |
+
+ */
+ public CatalogChecklistTemplateResponse createCatalogChecklistTemplate(@javax.annotation.Nonnull NewCatalogChecklistTemplate newCatalogChecklistTemplate) throws ApiException {
+ ApiResponse localVarResp = createCatalogChecklistTemplateWithHttpInfo(newCatalogChecklistTemplate);
+ return localVarResp.getData();
+ }
+
+ /**
+ * Creates a catalog checklist template
+ * Creates a new catalog checklist template
+ * @param newCatalogChecklistTemplate (required)
+ * @return ApiResponse<CatalogChecklistTemplateResponse>
+ * @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 | ignores user-provided field_key for custom fields | - |
+ | 422 | returns 422 when scope_type is missing for Catalog scope_id | - |
+ | 401 | responds with unauthorized for invalid token | - |
+
+ */
+ public ApiResponse createCatalogChecklistTemplateWithHttpInfo(@javax.annotation.Nonnull NewCatalogChecklistTemplate newCatalogChecklistTemplate) throws ApiException {
+ okhttp3.Call localVarCall = createCatalogChecklistTemplateValidateBeforeCall(newCatalogChecklistTemplate, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ return localVarApiClient.execute(localVarCall, localVarReturnType);
+ }
+
+ /**
+ * Creates a catalog checklist template (asynchronously)
+ * Creates a new catalog checklist template
+ * @param newCatalogChecklistTemplate (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 | ignores user-provided field_key for custom fields | - |
+ | 422 | returns 422 when scope_type is missing for Catalog scope_id | - |
+ | 401 | responds with unauthorized for invalid token | - |
+
+ */
+ public okhttp3.Call createCatalogChecklistTemplateAsync(@javax.annotation.Nonnull NewCatalogChecklistTemplate newCatalogChecklistTemplate, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = createCatalogChecklistTemplateValidateBeforeCall(newCatalogChecklistTemplate, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for deleteCatalogChecklistTemplate
+ * @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 checklist template deleted | - |
+ | 404 | catalog checklist template not found | - |
+
+ */
+ public okhttp3.Call deleteCatalogChecklistTemplateCall(@javax.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/catalog_checklist_templates/{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 deleteCatalogChecklistTemplateValidateBeforeCall(@javax.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)");
+ }
+
+ return deleteCatalogChecklistTemplateCall(id, _callback);
+
+ }
+
+ /**
+ * Delete a catalog checklist template
+ * Delete a specific catalog checklist template by id
+ * @param id (required)
+ * @return CatalogChecklistTemplateResponse
+ * @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 checklist template deleted | - |
+ | 404 | catalog checklist template not found | - |
+
+ */
+ public CatalogChecklistTemplateResponse deleteCatalogChecklistTemplate(@javax.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException {
+ ApiResponse localVarResp = deleteCatalogChecklistTemplateWithHttpInfo(id);
+ return localVarResp.getData();
+ }
+
+ /**
+ * Delete a catalog checklist template
+ * Delete a specific catalog checklist template by id
+ * @param id (required)
+ * @return ApiResponse<CatalogChecklistTemplateResponse>
+ * @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 checklist template deleted | - |
+ | 404 | catalog checklist template not found | - |
+
+ */
+ public ApiResponse deleteCatalogChecklistTemplateWithHttpInfo(@javax.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException {
+ okhttp3.Call localVarCall = deleteCatalogChecklistTemplateValidateBeforeCall(id, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ return localVarApiClient.execute(localVarCall, localVarReturnType);
+ }
+
+ /**
+ * Delete a catalog checklist template (asynchronously)
+ * Delete a specific catalog checklist template 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 | catalog checklist template deleted | - |
+ | 404 | catalog checklist template not found | - |
+
+ */
+ public okhttp3.Call deleteCatalogChecklistTemplateAsync(@javax.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = deleteCatalogChecklistTemplateValidateBeforeCall(id, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for getCatalogChecklistTemplate
+ * @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 checklist template found by slug | - |
+ | 404 | resource not found for another team | - |
+
+ */
+ public okhttp3.Call getCatalogChecklistTemplateCall(@javax.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/catalog_checklist_templates/{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 getCatalogChecklistTemplateValidateBeforeCall(@javax.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)");
+ }
+
+ return getCatalogChecklistTemplateCall(id, _callback);
+
+ }
+
+ /**
+ * Retrieves a catalog checklist template
+ * Retrieves a specific catalog checklist template by id
+ * @param id (required)
+ * @return CatalogChecklistTemplateResponse
+ * @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 checklist template found by slug | - |
+ | 404 | resource not found for another team | - |
+
+ */
+ public CatalogChecklistTemplateResponse getCatalogChecklistTemplate(@javax.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException {
+ ApiResponse localVarResp = getCatalogChecklistTemplateWithHttpInfo(id);
+ return localVarResp.getData();
+ }
+
+ /**
+ * Retrieves a catalog checklist template
+ * Retrieves a specific catalog checklist template by id
+ * @param id (required)
+ * @return ApiResponse<CatalogChecklistTemplateResponse>
+ * @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 checklist template found by slug | - |
+ | 404 | resource not found for another team | - |
+
+ */
+ public ApiResponse getCatalogChecklistTemplateWithHttpInfo(@javax.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException {
+ okhttp3.Call localVarCall = getCatalogChecklistTemplateValidateBeforeCall(id, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ return localVarApiClient.execute(localVarCall, localVarReturnType);
+ }
+
+ /**
+ * Retrieves a catalog checklist template (asynchronously)
+ * Retrieves a specific catalog checklist template 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 | catalog checklist template found by slug | - |
+ | 404 | resource not found for another team | - |
+
+ */
+ public okhttp3.Call getCatalogChecklistTemplateAsync(@javax.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = getCatalogChecklistTemplateValidateBeforeCall(id, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for listCatalogChecklistTemplates
+ * @param include comma separated if needed. eg: template_fields,template_owners (optional)
+ * @param sort comma separated if needed. eg: created_at,updated_at (optional)
+ * @param pageNumber (optional)
+ * @param pageSize (optional)
+ * @param filterName (optional)
+ * @param filterSlug (optional)
+ * @param filterCatalogType (optional)
+ * @param filterScopeType (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 | 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 {
+ 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/catalog_checklist_templates";
+
+ 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 (filterName != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name]", filterName));
+ }
+
+ if (filterSlug != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug]", filterSlug));
+ }
+
+ if (filterCatalogType != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[catalog_type]", filterCatalogType));
+ }
+
+ if (filterScopeType != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[scope_type]", filterScopeType));
+ }
+
+ 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 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 {
+ return listCatalogChecklistTemplatesCall(include, sort, pageNumber, pageSize, filterName, filterSlug, filterCatalogType, filterScopeType, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback);
+
+ }
+
+ /**
+ * List catalog checklist templates
+ * List catalog checklist templates
+ * @param include comma separated if needed. eg: template_fields,template_owners (optional)
+ * @param sort comma separated if needed. eg: created_at,updated_at (optional)
+ * @param pageNumber (optional)
+ * @param pageSize (optional)
+ * @param filterName (optional)
+ * @param filterSlug (optional)
+ * @param filterCatalogType (optional)
+ * @param filterScopeType (optional)
+ * @param filterCreatedAtGt (optional)
+ * @param filterCreatedAtGte (optional)
+ * @param filterCreatedAtLt (optional)
+ * @param filterCreatedAtLte (optional)
+ * @return CatalogChecklistTemplateList
+ * @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 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 {
+ ApiResponse localVarResp = listCatalogChecklistTemplatesWithHttpInfo(include, sort, pageNumber, pageSize, filterName, filterSlug, filterCatalogType, filterScopeType, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte);
+ return localVarResp.getData();
+ }
+
+ /**
+ * List catalog checklist templates
+ * List catalog checklist templates
+ * @param include comma separated if needed. eg: template_fields,template_owners (optional)
+ * @param sort comma separated if needed. eg: created_at,updated_at (optional)
+ * @param pageNumber (optional)
+ * @param pageSize (optional)
+ * @param filterName (optional)
+ * @param filterSlug (optional)
+ * @param filterCatalogType (optional)
+ * @param filterScopeType (optional)
+ * @param filterCreatedAtGt (optional)
+ * @param filterCreatedAtGte (optional)
+ * @param filterCreatedAtLt (optional)
+ * @param filterCreatedAtLte (optional)
+ * @return ApiResponse<CatalogChecklistTemplateList>
+ * @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 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 {
+ 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);
+ }
+
+ /**
+ * List catalog checklist templates (asynchronously)
+ * List catalog checklist templates
+ * @param include comma separated if needed. eg: template_fields,template_owners (optional)
+ * @param sort comma separated if needed. eg: created_at,updated_at (optional)
+ * @param pageNumber (optional)
+ * @param pageSize (optional)
+ * @param filterName (optional)
+ * @param filterSlug (optional)
+ * @param filterCatalogType (optional)
+ * @param filterScopeType (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 | 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 {
+
+ okhttp3.Call localVarCall = listCatalogChecklistTemplatesValidateBeforeCall(include, sort, pageNumber, pageSize, filterName, filterSlug, filterCatalogType, filterScopeType, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for triggerCatalogChecklistTemplate
+ * @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 |
+ | 202 | audit triggered | - |
+ | 404 | resource not found for another team | - |
+
+ */
+ public okhttp3.Call triggerCatalogChecklistTemplateCall(@javax.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/catalog_checklist_templates/{id}/trigger"
+ .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, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
+ }
+
+ @SuppressWarnings("rawtypes")
+ private okhttp3.Call triggerCatalogChecklistTemplateValidateBeforeCall(@javax.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)");
+ }
+
+ return triggerCatalogChecklistTemplateCall(id, _callback);
+
+ }
+
+ /**
+ * Trigger an audit for a catalog checklist template
+ * Triggers an audit for all applicable entities of the checklist template
+ * @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 |
+ | 202 | audit triggered | - |
+ | 404 | resource not found for another team | - |
+
+ */
+ public void triggerCatalogChecklistTemplate(@javax.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException {
+ triggerCatalogChecklistTemplateWithHttpInfo(id);
+ }
+
+ /**
+ * Trigger an audit for a catalog checklist template
+ * Triggers an audit for all applicable entities of the checklist template
+ * @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 |
+ | 202 | audit triggered | - |
+ | 404 | resource not found for another team | - |
+
+ */
+ public ApiResponse triggerCatalogChecklistTemplateWithHttpInfo(@javax.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException {
+ okhttp3.Call localVarCall = triggerCatalogChecklistTemplateValidateBeforeCall(id, null);
+ return localVarApiClient.execute(localVarCall);
+ }
+
+ /**
+ * Trigger an audit for a catalog checklist template (asynchronously)
+ * Triggers an audit for all applicable entities of the checklist template
+ * @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 |
+ | 202 | audit triggered | - |
+ | 404 | resource not found for another team | - |
+
+ */
+ public okhttp3.Call triggerCatalogChecklistTemplateAsync(@javax.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = triggerCatalogChecklistTemplateValidateBeforeCall(id, _callback);
+ localVarApiClient.executeAsync(localVarCall, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for updateCatalogChecklistTemplate
+ * @param id (required)
+ * @param updateCatalogChecklistTemplate (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 user-provided field_key for custom fields on update | - |
+ | 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 {
+ 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 = updateCatalogChecklistTemplate;
+
+ // create path and map variables
+ String localVarPath = "/v1/catalog_checklist_templates/{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 updateCatalogChecklistTemplateValidateBeforeCall(@javax.annotation.Nonnull GetAlertFieldIdParameter id, @javax.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)");
+ }
+
+ // verify the required parameter 'updateCatalogChecklistTemplate' is set
+ if (updateCatalogChecklistTemplate == null) {
+ throw new ApiException("Missing the required parameter 'updateCatalogChecklistTemplate' when calling updateCatalogChecklistTemplate(Async)");
+ }
+
+ return updateCatalogChecklistTemplateCall(id, updateCatalogChecklistTemplate, _callback);
+
+ }
+
+ /**
+ * Update a catalog checklist template
+ * Update a specific catalog checklist template by id
+ * @param id (required)
+ * @param updateCatalogChecklistTemplate (required)
+ * @return CatalogChecklistTemplateResponse
+ * @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 user-provided field_key for custom fields on update | - |
+ | 422 | rejects duplicate custom fields on update | - |
+
+ */
+ public CatalogChecklistTemplateResponse updateCatalogChecklistTemplate(@javax.annotation.Nonnull GetAlertFieldIdParameter id, @javax.annotation.Nonnull UpdateCatalogChecklistTemplate updateCatalogChecklistTemplate) throws ApiException {
+ ApiResponse localVarResp = updateCatalogChecklistTemplateWithHttpInfo(id, updateCatalogChecklistTemplate);
+ return localVarResp.getData();
+ }
+
+ /**
+ * Update a catalog checklist template
+ * Update a specific catalog checklist template by id
+ * @param id (required)
+ * @param updateCatalogChecklistTemplate (required)
+ * @return ApiResponse<CatalogChecklistTemplateResponse>
+ * @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 user-provided field_key for custom fields on update | - |
+ | 422 | rejects duplicate custom fields on update | - |
+
+ */
+ public ApiResponse updateCatalogChecklistTemplateWithHttpInfo(@javax.annotation.Nonnull GetAlertFieldIdParameter id, @javax.annotation.Nonnull UpdateCatalogChecklistTemplate updateCatalogChecklistTemplate) throws ApiException {
+ okhttp3.Call localVarCall = updateCatalogChecklistTemplateValidateBeforeCall(id, updateCatalogChecklistTemplate, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ return localVarApiClient.execute(localVarCall, localVarReturnType);
+ }
+
+ /**
+ * Update a catalog checklist template (asynchronously)
+ * Update a specific catalog checklist template by id
+ * @param id (required)
+ * @param updateCatalogChecklistTemplate (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 user-provided field_key for custom fields on update | - |
+ | 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 {
+
+ okhttp3.Call localVarCall = updateCatalogChecklistTemplateValidateBeforeCall(id, updateCatalogChecklistTemplate, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
+ return localVarCall;
+ }
+}
diff --git a/src/main/java/com/rootly/client/api/CatalogEntityChecklistsApi.java b/src/main/java/com/rootly/client/api/CatalogEntityChecklistsApi.java
new file mode 100644
index 00000000..70c7bf09
--- /dev/null
+++ b/src/main/java/com/rootly/client/api/CatalogEntityChecklistsApi.java
@@ -0,0 +1,406 @@
+/*
+ * Rootly API v1
+ * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ```
+ *
+ * The version of the OpenAPI document: v1
+ *
+ *
+ * NOTE: This class 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.CatalogEntityChecklistList;
+import com.rootly.client.model.CatalogEntityChecklistResponse;
+import com.rootly.client.model.ErrorsList;
+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 CatalogEntityChecklistsApi {
+ private ApiClient localVarApiClient;
+ private int localHostIndex;
+ private String localCustomBaseUrl;
+
+ public CatalogEntityChecklistsApi() {
+ this(Configuration.getDefaultApiClient());
+ }
+
+ public CatalogEntityChecklistsApi(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 getCatalogEntityChecklist
+ * @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 entity checklist found | - |
+ | 404 | resource not found for another team | - |
+
+ */
+ public okhttp3.Call getCatalogEntityChecklistCall(@javax.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/catalog_entity_checklists/{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 getCatalogEntityChecklistValidateBeforeCall(@javax.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)");
+ }
+
+ return getCatalogEntityChecklistCall(id, _callback);
+
+ }
+
+ /**
+ * Retrieves a catalog entity checklist
+ * Retrieves a specific catalog entity checklist by id
+ * @param id (required)
+ * @return CatalogEntityChecklistResponse
+ * @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 entity checklist found | - |
+ | 404 | resource not found for another team | - |
+
+ */
+ public CatalogEntityChecklistResponse getCatalogEntityChecklist(@javax.annotation.Nonnull UUID id) throws ApiException {
+ ApiResponse localVarResp = getCatalogEntityChecklistWithHttpInfo(id);
+ return localVarResp.getData();
+ }
+
+ /**
+ * Retrieves a catalog entity checklist
+ * Retrieves a specific catalog entity checklist by id
+ * @param id (required)
+ * @return ApiResponse<CatalogEntityChecklistResponse>
+ * @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 entity checklist found | - |
+ | 404 | resource not found for another team | - |
+
+ */
+ public ApiResponse getCatalogEntityChecklistWithHttpInfo(@javax.annotation.Nonnull UUID id) throws ApiException {
+ okhttp3.Call localVarCall = getCatalogEntityChecklistValidateBeforeCall(id, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ return localVarApiClient.execute(localVarCall, localVarReturnType);
+ }
+
+ /**
+ * Retrieves a catalog entity checklist (asynchronously)
+ * Retrieves a specific catalog entity checklist 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 | catalog entity checklist found | - |
+ | 404 | resource not found for another team | - |
+
+ */
+ public okhttp3.Call getCatalogEntityChecklistAsync(@javax.annotation.Nonnull UUID id, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = getCatalogEntityChecklistValidateBeforeCall(id, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for listCatalogEntityChecklists
+ * @param pageNumber (optional)
+ * @param pageSize (optional)
+ * @param filterStatus (optional)
+ * @param filterCatalogChecklistTemplateId (optional)
+ * @param filterAuditableType (optional)
+ * @param filterAuditableId (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 | 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 {
+ 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/catalog_entity_checklists";
+
+ 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));
+ }
+
+ if (filterStatus != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[status]", filterStatus));
+ }
+
+ if (filterCatalogChecklistTemplateId != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[catalog_checklist_template_id]", filterCatalogChecklistTemplateId));
+ }
+
+ if (filterAuditableType != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[auditable_type]", filterAuditableType));
+ }
+
+ if (filterAuditableId != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[auditable_id]", filterAuditableId));
+ }
+
+ 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 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 {
+ return listCatalogEntityChecklistsCall(pageNumber, pageSize, filterStatus, filterCatalogChecklistTemplateId, filterAuditableType, filterAuditableId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback);
+
+ }
+
+ /**
+ * List catalog entity checklists
+ * List catalog entity checklists
+ * @param pageNumber (optional)
+ * @param pageSize (optional)
+ * @param filterStatus (optional)
+ * @param filterCatalogChecklistTemplateId (optional)
+ * @param filterAuditableType (optional)
+ * @param filterAuditableId (optional)
+ * @param filterCreatedAtGt (optional)
+ * @param filterCreatedAtGte (optional)
+ * @param filterCreatedAtLt (optional)
+ * @param filterCreatedAtLte (optional)
+ * @return CatalogEntityChecklistList
+ * @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 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 {
+ ApiResponse localVarResp = listCatalogEntityChecklistsWithHttpInfo(pageNumber, pageSize, filterStatus, filterCatalogChecklistTemplateId, filterAuditableType, filterAuditableId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte);
+ return localVarResp.getData();
+ }
+
+ /**
+ * List catalog entity checklists
+ * List catalog entity checklists
+ * @param pageNumber (optional)
+ * @param pageSize (optional)
+ * @param filterStatus (optional)
+ * @param filterCatalogChecklistTemplateId (optional)
+ * @param filterAuditableType (optional)
+ * @param filterAuditableId (optional)
+ * @param filterCreatedAtGt (optional)
+ * @param filterCreatedAtGte (optional)
+ * @param filterCreatedAtLt (optional)
+ * @param filterCreatedAtLte (optional)
+ * @return ApiResponse<CatalogEntityChecklistList>
+ * @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 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 {
+ 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);
+ }
+
+ /**
+ * List catalog entity checklists (asynchronously)
+ * List catalog entity checklists
+ * @param pageNumber (optional)
+ * @param pageSize (optional)
+ * @param filterStatus (optional)
+ * @param filterCatalogChecklistTemplateId (optional)
+ * @param filterAuditableType (optional)
+ * @param filterAuditableId (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 | 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 {
+
+ okhttp3.Call localVarCall = listCatalogEntityChecklistsValidateBeforeCall(pageNumber, pageSize, filterStatus, filterCatalogChecklistTemplateId, filterAuditableType, filterAuditableId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
+ return localVarCall;
+ }
+}
diff --git a/src/main/java/com/rootly/client/api/CatalogPropertiesApi.java b/src/main/java/com/rootly/client/api/CatalogPropertiesApi.java
new file mode 100644
index 00000000..dbaee35b
--- /dev/null
+++ b/src/main/java/com/rootly/client/api/CatalogPropertiesApi.java
@@ -0,0 +1,706 @@
+/*
+ * Rootly API v1
+ * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ```
+ *
+ * The version of the OpenAPI document: v1
+ *
+ *
+ * NOTE: This class 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.NewCatalogField;
+import com.rootly.client.model.UpdateCatalogField;
+
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class CatalogPropertiesApi {
+ private ApiClient localVarApiClient;
+ private int localHostIndex;
+ private String localCustomBaseUrl;
+
+ public CatalogPropertiesApi() {
+ this(Configuration.getDefaultApiClient());
+ }
+
+ public CatalogPropertiesApi(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 createCatalogProperty
+ * @param catalogId (required)
+ * @param newCatalogField (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 | - |
+
+ */
+ public okhttp3.Call createCatalogPropertyCall(@javax.annotation.Nonnull String catalogId, @javax.annotation.Nonnull NewCatalogField newCatalogField, 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 = newCatalogField;
+
+ // create path and map variables
+ String localVarPath = "/v1/catalogs/{catalog_id}/properties"
+ .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 = {
+ };
+ 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 createCatalogPropertyValidateBeforeCall(@javax.annotation.Nonnull String catalogId, @javax.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)");
+ }
+
+ // verify the required parameter 'newCatalogField' is set
+ if (newCatalogField == null) {
+ throw new ApiException("Missing the required parameter 'newCatalogField' when calling createCatalogProperty(Async)");
+ }
+
+ return createCatalogPropertyCall(catalogId, newCatalogField, _callback);
+
+ }
+
+ /**
+ * Creates a Catalog Property (alias for field)
+ * Creates a new Catalog Property - returns catalog_properties type
+ * @param catalogId (required)
+ * @param newCatalogField (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 |
+ | 201 | catalog_property created | - |
+
+ */
+ public void createCatalogProperty(@javax.annotation.Nonnull String catalogId, @javax.annotation.Nonnull NewCatalogField newCatalogField) throws ApiException {
+ createCatalogPropertyWithHttpInfo(catalogId, newCatalogField);
+ }
+
+ /**
+ * Creates a Catalog Property (alias for field)
+ * Creates a new Catalog Property - returns catalog_properties type
+ * @param catalogId (required)
+ * @param newCatalogField (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 |
+ | 201 | catalog_property created | - |
+
+ */
+ public ApiResponse createCatalogPropertyWithHttpInfo(@javax.annotation.Nonnull String catalogId, @javax.annotation.Nonnull NewCatalogField newCatalogField) throws ApiException {
+ okhttp3.Call localVarCall = createCatalogPropertyValidateBeforeCall(catalogId, newCatalogField, null);
+ return localVarApiClient.execute(localVarCall);
+ }
+
+ /**
+ * Creates a Catalog Property (alias for field) (asynchronously)
+ * Creates a new Catalog Property - returns catalog_properties type
+ * @param catalogId (required)
+ * @param newCatalogField (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 | - |
+
+ */
+ public okhttp3.Call createCatalogPropertyAsync(@javax.annotation.Nonnull String catalogId, @javax.annotation.Nonnull NewCatalogField newCatalogField, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = createCatalogPropertyValidateBeforeCall(catalogId, newCatalogField, _callback);
+ localVarApiClient.executeAsync(localVarCall, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for deleteCatalogProperty
+ * @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_property deleted | - |
+
+ */
+ public okhttp3.Call deleteCatalogPropertyCall(@javax.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/catalog_properties/{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 deleteCatalogPropertyValidateBeforeCall(@javax.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)");
+ }
+
+ return deleteCatalogPropertyCall(id, _callback);
+
+ }
+
+ /**
+ * Delete a catalog_property
+ * Delete a specific catalog_property by id - returns catalog_properties type
+ * @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_property deleted | - |
+
+ */
+ public void deleteCatalogProperty(@javax.annotation.Nonnull String id) throws ApiException {
+ deleteCatalogPropertyWithHttpInfo(id);
+ }
+
+ /**
+ * Delete a catalog_property
+ * Delete a specific catalog_property by id - returns catalog_properties type
+ * @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_property deleted | - |
+
+ */
+ public ApiResponse deleteCatalogPropertyWithHttpInfo(@javax.annotation.Nonnull String id) throws ApiException {
+ okhttp3.Call localVarCall = deleteCatalogPropertyValidateBeforeCall(id, null);
+ return localVarApiClient.execute(localVarCall);
+ }
+
+ /**
+ * Delete a catalog_property (asynchronously)
+ * Delete a specific catalog_property by id - returns catalog_properties type
+ * @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_property deleted | - |
+
+ */
+ public okhttp3.Call deleteCatalogPropertyAsync(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = deleteCatalogPropertyValidateBeforeCall(id, _callback);
+ localVarApiClient.executeAsync(localVarCall, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for getCatalogProperty
+ * @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_property found | - |
+
+ */
+ public okhttp3.Call getCatalogPropertyCall(@javax.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/catalog_properties/{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, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
+ }
+
+ @SuppressWarnings("rawtypes")
+ private okhttp3.Call getCatalogPropertyValidateBeforeCall(@javax.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)");
+ }
+
+ return getCatalogPropertyCall(id, _callback);
+
+ }
+
+ /**
+ * Retrieves a Catalog Property (alias for field)
+ * Retrieves a specific Catalog Property by id - returns catalog_properties type
+ * @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_property found | - |
+
+ */
+ public void getCatalogProperty(@javax.annotation.Nonnull String id) throws ApiException {
+ getCatalogPropertyWithHttpInfo(id);
+ }
+
+ /**
+ * Retrieves a Catalog Property (alias for field)
+ * Retrieves a specific Catalog Property by id - returns catalog_properties type
+ * @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_property found | - |
+
+ */
+ public ApiResponse getCatalogPropertyWithHttpInfo(@javax.annotation.Nonnull String id) throws ApiException {
+ okhttp3.Call localVarCall = getCatalogPropertyValidateBeforeCall(id, null);
+ return localVarApiClient.execute(localVarCall);
+ }
+
+ /**
+ * Retrieves a Catalog Property (alias for field) (asynchronously)
+ * Retrieves a specific Catalog Property by id - returns catalog_properties type
+ * @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_property found | - |
+
+ */
+ public okhttp3.Call getCatalogPropertyAsync(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = getCatalogPropertyValidateBeforeCall(id, _callback);
+ localVarApiClient.executeAsync(localVarCall, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for listCatalogProperties
+ * @param catalogId (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 | success with catalog_properties type | - |
+
+ */
+ public okhttp3.Call listCatalogPropertiesCall(@javax.annotation.Nonnull String catalogId, 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/catalogs/{catalog_id}/properties"
+ .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 = {
+ };
+ 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 listCatalogPropertiesValidateBeforeCall(@javax.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)");
+ }
+
+ return listCatalogPropertiesCall(catalogId, _callback);
+
+ }
+
+ /**
+ * List Catalog Properties (alias for fields)
+ * List Catalog Properties - returns catalog_properties type
+ * @param catalogId (required)
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+