diff --git a/changelog.md b/changelog.md index 8715d39b..2a7a88fc 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,7 @@ +# qase-java 4.1.55 + +- Updated API clients to the latest specification + # qase-java 4.1.54 ## Bug fixes diff --git a/pom.xml b/pom.xml index 4a1e13bc..e8c373bc 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ io.qase qase-java pom - 4.1.54 + 4.1.55 qase-java-commons qase-api-client diff --git a/qase-api-client/docs/DefectCreate.md b/qase-api-client/docs/DefectCreate.md index 46205145..9d73e551 100644 --- a/qase-api-client/docs/DefectCreate.md +++ b/qase-api-client/docs/DefectCreate.md @@ -12,7 +12,7 @@ |**severity** | **Integer** | | | |**milestoneId** | **Long** | | [optional] | |**attachments** | **List<String>** | | [optional] | -|**customField** | **Map<String, String>** | A map of custom fields values (id => value) | [optional] | +|**customField** | **Map<String, String>** | Custom field values keyed by the field's project-scoped `internal_id` (see `GET /custom_field`). Values are always **scalar strings**; arrays, objects or non-scalars are rejected. | Field type | Value format | Example | |----------------------|-------------------------------------------|-------------------------| | `string`, `text` | Plain string | `\"hello\"` | | `number` | Numeric string | `\"42\"` | | `url` | Valid URL | `\"https://qase.io\"` | | `datetime` | Absolute date (ISO 8601 recommended) | `\"2026-04-29T15:00:00Z\"`| | `selectbox`, `radio` | Option `id` as string | `\"1\"` | | `multiselect` | Comma-separated option `id`s (no spaces) | `\"1,2,3\"` | | `checkbox` | `\"1\"` to check, `\"\"` to uncheck | `\"1\"` | | `user` | Team member `internal_id` as string | `\"42\"` | Validation: all required fields without a default value must be present and non-empty; unknown `internal_id`s are rejected; option-based values must reference an existing option. Note: a `required` checkbox without a default cannot be unchecked via the API — set a default or clear `required` in workspace settings. | [optional] | |**tags** | **List<String>** | | [optional] | diff --git a/qase-api-client/docs/DefectUpdate.md b/qase-api-client/docs/DefectUpdate.md index a7096a2e..bac63b92 100644 --- a/qase-api-client/docs/DefectUpdate.md +++ b/qase-api-client/docs/DefectUpdate.md @@ -12,7 +12,7 @@ |**severity** | **Integer** | | [optional] | |**milestoneId** | **Long** | | [optional] | |**attachments** | **List<String>** | | [optional] | -|**customField** | **Map<String, String>** | A map of custom fields values (id => value) | [optional] | +|**customField** | **Map<String, String>** | Custom field values keyed by the field's project-scoped `internal_id` (see `GET /custom_field`). Values are always **scalar strings**; arrays, objects or non-scalars are rejected. | Field type | Value format | Example | |----------------------|-------------------------------------------|-------------------------| | `string`, `text` | Plain string | `\"hello\"` | | `number` | Numeric string | `\"42\"` | | `url` | Valid URL | `\"https://qase.io\"` | | `datetime` | Absolute date (ISO 8601 recommended) | `\"2026-04-29T15:00:00Z\"`| | `selectbox`, `radio` | Option `id` as string | `\"1\"` | | `multiselect` | Comma-separated option `id`s (no spaces) | `\"1,2,3\"` | | `checkbox` | `\"1\"` to check, `\"\"` to uncheck | `\"1\"` | | `user` | Team member `internal_id` as string | `\"42\"` | Partial update: only fields present in the payload are validated; required fields not included are not enforced. Send `\"\"` to clear a value. Unknown `internal_id`s are rejected; option-based values must reference an existing option. Note: a `required` checkbox without a default cannot be unchecked via the API — set a default or clear `required` in workspace settings. | [optional] | |**tags** | **List<String>** | | [optional] | diff --git a/qase-api-client/docs/RunCreate.md b/qase-api-client/docs/RunCreate.md index beec8274..bcfc3180 100644 --- a/qase-api-client/docs/RunCreate.md +++ b/qase-api-client/docs/RunCreate.md @@ -19,7 +19,7 @@ |**authorId** | **Long** | | [optional] | |**tags** | **List<String>** | | [optional] | |**configurations** | **List<Long>** | | [optional] | -|**customField** | **Map<String, String>** | A map of custom fields values (id => value) | [optional] | +|**customField** | **Map<String, String>** | Custom field values keyed by the field's project-scoped `internal_id` (see `GET /custom_field`). Values are always **scalar strings**; arrays, objects or non-scalars are rejected. | Field type | Value format | Example | |----------------------|-------------------------------------------|-------------------------| | `string`, `text` | Plain string | `\"hello\"` | | `number` | Numeric string | `\"42\"` | | `url` | Valid URL | `\"https://qase.io\"` | | `datetime` | Absolute date (ISO 8601 recommended) | `\"2026-04-29T15:00:00Z\"`| | `selectbox`, `radio` | Option `id` as string | `\"1\"` | | `multiselect` | Comma-separated option `id`s (no spaces) | `\"1,2,3\"` | | `checkbox` | `\"1\"` to check, `\"\"` to uncheck | `\"1\"` | | `user` | Team member `internal_id` as string | `\"42\"` | Validation: all required fields without a default value must be present and non-empty; unknown `internal_id`s are rejected; option-based values must reference an existing option. Note: a `required` checkbox without a default cannot be unchecked via the API — set a default or clear `required` in workspace settings. | [optional] | |**startTime** | **String** | | [optional] | |**endTime** | **String** | | [optional] | |**isCloud** | **Boolean** | Indicates if the run is created for the Test Cases produced by AIDEN | [optional] | diff --git a/qase-api-client/docs/Runupdate.md b/qase-api-client/docs/Runupdate.md index 755f23ee..ced0e144 100644 --- a/qase-api-client/docs/Runupdate.md +++ b/qase-api-client/docs/Runupdate.md @@ -14,7 +14,7 @@ |**milestoneId** | **Long** | | [optional] | |**tags** | **List<String>** | | [optional] | |**configurations** | **List<Long>** | | [optional] | -|**customField** | **Map<String, String>** | A map of custom fields values (id => value) | [optional] | +|**customField** | **Map<String, String>** | Custom field values keyed by the field's project-scoped `internal_id` (see `GET /custom_field`). Values are always **scalar strings**; arrays, objects or non-scalars are rejected. | Field type | Value format | Example | |----------------------|-------------------------------------------|-------------------------| | `string`, `text` | Plain string | `\"hello\"` | | `number` | Numeric string | `\"42\"` | | `url` | Valid URL | `\"https://qase.io\"` | | `datetime` | Absolute date (ISO 8601 recommended) | `\"2026-04-29T15:00:00Z\"`| | `selectbox`, `radio` | Option `id` as string | `\"1\"` | | `multiselect` | Comma-separated option `id`s (no spaces) | `\"1,2,3\"` | | `checkbox` | `\"1\"` to check, `\"\"` to uncheck | `\"1\"` | | `user` | Team member `internal_id` as string | `\"42\"` | Validation: all required fields without a default value must be present and non-empty; unknown `internal_id`s are rejected; option-based values must reference an existing option. Note: a `required` checkbox without a default cannot be unchecked via the API — set a default or clear `required` in workspace settings. | [optional] | diff --git a/qase-api-client/docs/TestCase.md b/qase-api-client/docs/TestCase.md index fb780bfa..b00064c9 100644 --- a/qase-api-client/docs/TestCase.md +++ b/qase-api-client/docs/TestCase.md @@ -19,7 +19,9 @@ |**layer** | **Integer** | | [optional] | |**isFlaky** | **Integer** | | [optional] | |**behavior** | **Integer** | | [optional] | -|**automation** | **Integer** | | [optional] | +|**automation** | **Integer** | Deprecated, use `isManual` and `isToBeAutomated` instead. Encodes the test case automation state as a single integer: `0` = manual, `1` = manual planned to be automated, `2` = automated. | [optional] | +|**isManual** | **Integer** | `1` if the case is manual, `0` if it is automated. Combined with `isToBeAutomated`, replaces the deprecated `automation` field. | [optional] | +|**isToBeAutomated** | **Integer** | `1` if a manual case is planned to be automated, `0` otherwise. Only meaningful when `isManual = 1`; ignored when `isManual = 0`. | [optional] | |**status** | **Integer** | | [optional] | |**milestoneId** | **Long** | | [optional] | |**suiteId** | **Long** | | [optional] | diff --git a/qase-api-client/docs/TestCaseCreate.md b/qase-api-client/docs/TestCaseCreate.md index a78fcd2b..c6bb55bc 100644 --- a/qase-api-client/docs/TestCaseCreate.md +++ b/qase-api-client/docs/TestCaseCreate.md @@ -19,7 +19,9 @@ |**isFlaky** | **Integer** | | [optional] | |**suiteId** | **Long** | | [optional] | |**milestoneId** | **Long** | | [optional] | -|**automation** | **Integer** | | [optional] | +|**automation** | **Integer** | Deprecated, use `isManual` and `isToBeAutomated` instead. Encodes the test case automation state as a single integer: `0` = manual, `1` = manual planned to be automated, `2` = automated. If both `automation` and `isManual`/`isToBeAutomated` are provided, `isManual` and `isToBeAutomated` take precedence. | [optional] | +|**isManual** | **Integer** | `1` if the case is manual, `0` if it is automated. Combined with `isToBeAutomated`, replaces the deprecated `automation` field. | [optional] | +|**isToBeAutomated** | **Integer** | `1` if a manual case is planned to be automated, `0` otherwise. Only meaningful when `isManual = 1`; ignored when `isManual = 0`. | [optional] | |**status** | **Integer** | | [optional] | |**stepsType** | [**StepsTypeEnum**](#StepsTypeEnum) | Determines the format of the steps field. When \"classic\", steps use the standard action/expected_result/data format. When \"gherkin\", steps use the {value: \"Given...\\nWhen...\\nThen...\"} format. | [optional] | |**attachments** | **List<String>** | A list of Attachment hashes. | [optional] | @@ -27,7 +29,7 @@ |**tags** | **List<String>** | | [optional] | |**params** | **Map<String, List<String>>** | Deprecated, use `parameters` instead. | [optional] | |**parameters** | [**List<TestCaseParameterCreate>**](TestCaseParameterCreate.md) | | [optional] | -|**customField** | **Map<String, String>** | A map of custom fields values (id => value) | [optional] | +|**customField** | **Map<String, String>** | Custom field values keyed by the field's project-scoped `internal_id` (see `GET /custom_field`). Values are always **scalar strings**; arrays, objects or non-scalars are rejected. | Field type | Value format | Example | |----------------------|-------------------------------------------|-------------------------| | `string`, `text` | Plain string | `\"hello\"` | | `number` | Numeric string | `\"42\"` | | `url` | Valid URL | `\"https://qase.io\"` | | `datetime` | Absolute date (ISO 8601 recommended) | `\"2026-04-29T15:00:00Z\"`| | `selectbox`, `radio` | Option `id` as string | `\"1\"` | | `multiselect` | Comma-separated option `id`s (no spaces) | `\"1,2,3\"` | | `checkbox` | `\"1\"` to check, `\"\"` to uncheck | `\"1\"` | | `user` | Team member `internal_id` as string | `\"42\"` | Validation: all required fields without a default value must be present and non-empty; unknown `internal_id`s are rejected; option-based values must reference an existing option. Note: a `required` checkbox without a default cannot be unchecked via the API — set a default or clear `required` in workspace settings. | [optional] | |**createdAt** | **String** | | [optional] | |**updatedAt** | **String** | | [optional] | diff --git a/qase-api-client/docs/TestCaseUpdate.md b/qase-api-client/docs/TestCaseUpdate.md index fd61d58e..be6eb336 100644 --- a/qase-api-client/docs/TestCaseUpdate.md +++ b/qase-api-client/docs/TestCaseUpdate.md @@ -19,7 +19,9 @@ |**isFlaky** | **Integer** | | [optional] | |**suiteId** | **Long** | | [optional] | |**milestoneId** | **Long** | | [optional] | -|**automation** | **Integer** | | [optional] | +|**automation** | **Integer** | Deprecated, use `isManual` and `isToBeAutomated` instead. Encodes the test case automation state as a single integer: `0` = manual, `1` = manual planned to be automated, `2` = automated. If both `automation` and `isManual`/`isToBeAutomated` are provided, `isManual` and `isToBeAutomated` take precedence. | [optional] | +|**isManual** | **Integer** | `1` if the case is manual, `0` if it is automated. Combined with `isToBeAutomated`, replaces the deprecated `automation` field. | [optional] | +|**isToBeAutomated** | **Integer** | `1` if a manual case is planned to be automated, `0` otherwise. Only meaningful when `isManual = 1`; ignored when `isManual = 0`. | [optional] | |**status** | **Integer** | | [optional] | |**stepsType** | [**StepsTypeEnum**](#StepsTypeEnum) | Determines the format of the steps field. When \"classic\", steps use the standard action/expected_result/data format. When \"gherkin\", steps use the {value: \"Given...\\nWhen...\\nThen...\"} format. | [optional] | |**attachments** | **List<String>** | A list of Attachment hashes. | [optional] | @@ -27,7 +29,7 @@ |**tags** | **List<String>** | | [optional] | |**params** | **Map<String, List<String>>** | Deprecated, use `parameters` instead. | [optional] | |**parameters** | [**List<TestCaseParameterCreate>**](TestCaseParameterCreate.md) | | [optional] | -|**customField** | **Map<String, String>** | A map of custom fields values (id => value) | [optional] | +|**customField** | **Map<String, String>** | Custom field values keyed by the field's project-scoped `internal_id` (see `GET /custom_field`). Values are always **scalar strings**; arrays, objects or non-scalars are rejected. | Field type | Value format | Example | |----------------------|-------------------------------------------|-------------------------| | `string`, `text` | Plain string | `\"hello\"` | | `number` | Numeric string | `\"42\"` | | `url` | Valid URL | `\"https://qase.io\"` | | `datetime` | Absolute date (ISO 8601 recommended) | `\"2026-04-29T15:00:00Z\"`| | `selectbox`, `radio` | Option `id` as string | `\"1\"` | | `multiselect` | Comma-separated option `id`s (no spaces) | `\"1,2,3\"` | | `checkbox` | `\"1\"` to check, `\"\"` to uncheck | `\"1\"` | | `user` | Team member `internal_id` as string | `\"42\"` | Partial update: only fields present in the payload are validated; required fields not included are not enforced. Send `\"\"` to clear a value. Unknown `internal_id`s are rejected; option-based values must reference an existing option. Note: a `required` checkbox without a default cannot be unchecked via the API — set a default or clear `required` in workspace settings. | [optional] | diff --git a/qase-api-client/docs/TestCasebulkCasesInner.md b/qase-api-client/docs/TestCasebulkCasesInner.md index 5c950e29..520ca71c 100644 --- a/qase-api-client/docs/TestCasebulkCasesInner.md +++ b/qase-api-client/docs/TestCasebulkCasesInner.md @@ -19,7 +19,9 @@ |**isFlaky** | **Integer** | | [optional] | |**suiteId** | **Long** | | [optional] | |**milestoneId** | **Long** | | [optional] | -|**automation** | **Integer** | | [optional] | +|**automation** | **Integer** | Deprecated, use `isManual` and `isToBeAutomated` instead. Encodes the test case automation state as a single integer: `0` = manual, `1` = manual planned to be automated, `2` = automated. If both `automation` and `isManual`/`isToBeAutomated` are provided, `isManual` and `isToBeAutomated` take precedence. | [optional] | +|**isManual** | **Integer** | `1` if the case is manual, `0` if it is automated. Combined with `isToBeAutomated`, replaces the deprecated `automation` field. | [optional] | +|**isToBeAutomated** | **Integer** | `1` if a manual case is planned to be automated, `0` otherwise. Only meaningful when `isManual = 1`; ignored when `isManual = 0`. | [optional] | |**status** | **Integer** | | [optional] | |**stepsType** | [**StepsTypeEnum**](#StepsTypeEnum) | Determines the format of the steps field. When \"classic\", steps use the standard action/expected_result/data format. When \"gherkin\", steps use the {value: \"Given...\\nWhen...\\nThen...\"} format. | [optional] | |**attachments** | **List<String>** | A list of Attachment hashes. | [optional] | @@ -27,7 +29,7 @@ |**tags** | **List<String>** | | [optional] | |**params** | **Map<String, List<String>>** | Deprecated, use `parameters` instead. | [optional] | |**parameters** | [**List<TestCaseParameterCreate>**](TestCaseParameterCreate.md) | | [optional] | -|**customField** | **Map<String, String>** | A map of custom fields values (id => value) | [optional] | +|**customField** | **Map<String, String>** | Custom field values keyed by the field's project-scoped `internal_id` (see `GET /custom_field`). Values are always **scalar strings**; arrays, objects or non-scalars are rejected. | Field type | Value format | Example | |----------------------|-------------------------------------------|-------------------------| | `string`, `text` | Plain string | `\"hello\"` | | `number` | Numeric string | `\"42\"` | | `url` | Valid URL | `\"https://qase.io\"` | | `datetime` | Absolute date (ISO 8601 recommended) | `\"2026-04-29T15:00:00Z\"`| | `selectbox`, `radio` | Option `id` as string | `\"1\"` | | `multiselect` | Comma-separated option `id`s (no spaces) | `\"1,2,3\"` | | `checkbox` | `\"1\"` to check, `\"\"` to uncheck | `\"1\"` | | `user` | Team member `internal_id` as string | `\"42\"` | Validation: all required fields without a default value must be present and non-empty; unknown `internal_id`s are rejected; option-based values must reference an existing option. Note: a `required` checkbox without a default cannot be unchecked via the API — set a default or clear `required` in workspace settings. | [optional] | |**createdAt** | **String** | | [optional] | |**updatedAt** | **String** | | [optional] | |**id** | **Integer** | | [optional] | diff --git a/qase-api-client/pom.xml b/qase-api-client/pom.xml index 9a6d7cd6..a0ff084c 100644 --- a/qase-api-client/pom.xml +++ b/qase-api-client/pom.xml @@ -5,7 +5,7 @@ qase-java io.qase - 4.1.54 + 4.1.55 4.0.0 diff --git a/qase-api-client/src/main/java/io/qase/client/v1/models/DefectCreate.java b/qase-api-client/src/main/java/io/qase/client/v1/models/DefectCreate.java index 7e9c378f..401a7520 100644 --- a/qase-api-client/src/main/java/io/qase/client/v1/models/DefectCreate.java +++ b/qase-api-client/src/main/java/io/qase/client/v1/models/DefectCreate.java @@ -210,7 +210,7 @@ public DefectCreate putCustomFieldItem(String key, String customFieldItem) { } /** - * A map of custom fields values (id => value) + * Custom field values keyed by the field's project-scoped `internal_id` (see `GET /custom_field`). Values are always **scalar strings**; arrays, objects or non-scalars are rejected. | Field type | Value format | Example | |----------------------|-------------------------------------------|-------------------------| | `string`, `text` | Plain string | `\"hello\"` | | `number` | Numeric string | `\"42\"` | | `url` | Valid URL | `\"https://qase.io\"` | | `datetime` | Absolute date (ISO 8601 recommended) | `\"2026-04-29T15:00:00Z\"`| | `selectbox`, `radio` | Option `id` as string | `\"1\"` | | `multiselect` | Comma-separated option `id`s (no spaces) | `\"1,2,3\"` | | `checkbox` | `\"1\"` to check, `\"\"` to uncheck | `\"1\"` | | `user` | Team member `internal_id` as string | `\"42\"` | Validation: all required fields without a default value must be present and non-empty; unknown `internal_id`s are rejected; option-based values must reference an existing option. Note: a `required` checkbox without a default cannot be unchecked via the API — set a default or clear `required` in workspace settings. * @return customField */ @javax.annotation.Nullable diff --git a/qase-api-client/src/main/java/io/qase/client/v1/models/DefectUpdate.java b/qase-api-client/src/main/java/io/qase/client/v1/models/DefectUpdate.java index ae02b81b..0103aa03 100644 --- a/qase-api-client/src/main/java/io/qase/client/v1/models/DefectUpdate.java +++ b/qase-api-client/src/main/java/io/qase/client/v1/models/DefectUpdate.java @@ -210,7 +210,7 @@ public DefectUpdate putCustomFieldItem(String key, String customFieldItem) { } /** - * A map of custom fields values (id => value) + * Custom field values keyed by the field's project-scoped `internal_id` (see `GET /custom_field`). Values are always **scalar strings**; arrays, objects or non-scalars are rejected. | Field type | Value format | Example | |----------------------|-------------------------------------------|-------------------------| | `string`, `text` | Plain string | `\"hello\"` | | `number` | Numeric string | `\"42\"` | | `url` | Valid URL | `\"https://qase.io\"` | | `datetime` | Absolute date (ISO 8601 recommended) | `\"2026-04-29T15:00:00Z\"`| | `selectbox`, `radio` | Option `id` as string | `\"1\"` | | `multiselect` | Comma-separated option `id`s (no spaces) | `\"1,2,3\"` | | `checkbox` | `\"1\"` to check, `\"\"` to uncheck | `\"1\"` | | `user` | Team member `internal_id` as string | `\"42\"` | Partial update: only fields present in the payload are validated; required fields not included are not enforced. Send `\"\"` to clear a value. Unknown `internal_id`s are rejected; option-based values must reference an existing option. Note: a `required` checkbox without a default cannot be unchecked via the API — set a default or clear `required` in workspace settings. * @return customField */ @javax.annotation.Nullable diff --git a/qase-api-client/src/main/java/io/qase/client/v1/models/RunCreate.java b/qase-api-client/src/main/java/io/qase/client/v1/models/RunCreate.java index a1e8c67f..5344cde9 100644 --- a/qase-api-client/src/main/java/io/qase/client/v1/models/RunCreate.java +++ b/qase-api-client/src/main/java/io/qase/client/v1/models/RunCreate.java @@ -413,7 +413,7 @@ public RunCreate putCustomFieldItem(String key, String customFieldItem) { } /** - * A map of custom fields values (id => value) + * Custom field values keyed by the field's project-scoped `internal_id` (see `GET /custom_field`). Values are always **scalar strings**; arrays, objects or non-scalars are rejected. | Field type | Value format | Example | |----------------------|-------------------------------------------|-------------------------| | `string`, `text` | Plain string | `\"hello\"` | | `number` | Numeric string | `\"42\"` | | `url` | Valid URL | `\"https://qase.io\"` | | `datetime` | Absolute date (ISO 8601 recommended) | `\"2026-04-29T15:00:00Z\"`| | `selectbox`, `radio` | Option `id` as string | `\"1\"` | | `multiselect` | Comma-separated option `id`s (no spaces) | `\"1,2,3\"` | | `checkbox` | `\"1\"` to check, `\"\"` to uncheck | `\"1\"` | | `user` | Team member `internal_id` as string | `\"42\"` | Validation: all required fields without a default value must be present and non-empty; unknown `internal_id`s are rejected; option-based values must reference an existing option. Note: a `required` checkbox without a default cannot be unchecked via the API — set a default or clear `required` in workspace settings. * @return customField */ @javax.annotation.Nullable diff --git a/qase-api-client/src/main/java/io/qase/client/v1/models/Runupdate.java b/qase-api-client/src/main/java/io/qase/client/v1/models/Runupdate.java index 630519f1..4117472a 100644 --- a/qase-api-client/src/main/java/io/qase/client/v1/models/Runupdate.java +++ b/qase-api-client/src/main/java/io/qase/client/v1/models/Runupdate.java @@ -263,7 +263,7 @@ public Runupdate putCustomFieldItem(String key, String customFieldItem) { } /** - * A map of custom fields values (id => value) + * Custom field values keyed by the field's project-scoped `internal_id` (see `GET /custom_field`). Values are always **scalar strings**; arrays, objects or non-scalars are rejected. | Field type | Value format | Example | |----------------------|-------------------------------------------|-------------------------| | `string`, `text` | Plain string | `\"hello\"` | | `number` | Numeric string | `\"42\"` | | `url` | Valid URL | `\"https://qase.io\"` | | `datetime` | Absolute date (ISO 8601 recommended) | `\"2026-04-29T15:00:00Z\"`| | `selectbox`, `radio` | Option `id` as string | `\"1\"` | | `multiselect` | Comma-separated option `id`s (no spaces) | `\"1,2,3\"` | | `checkbox` | `\"1\"` to check, `\"\"` to uncheck | `\"1\"` | | `user` | Team member `internal_id` as string | `\"42\"` | Validation: all required fields without a default value must be present and non-empty; unknown `internal_id`s are rejected; option-based values must reference an existing option. Note: a `required` checkbox without a default cannot be unchecked via the API — set a default or clear `required` in workspace settings. * @return customField */ @javax.annotation.Nullable diff --git a/qase-api-client/src/main/java/io/qase/client/v1/models/TestCase.java b/qase-api-client/src/main/java/io/qase/client/v1/models/TestCase.java index 7a2b48fc..39f8b5a0 100644 --- a/qase-api-client/src/main/java/io/qase/client/v1/models/TestCase.java +++ b/qase-api-client/src/main/java/io/qase/client/v1/models/TestCase.java @@ -122,10 +122,21 @@ public class TestCase { private Integer behavior; public static final String SERIALIZED_NAME_AUTOMATION = "automation"; + @Deprecated @SerializedName(SERIALIZED_NAME_AUTOMATION) @javax.annotation.Nullable private Integer automation; + public static final String SERIALIZED_NAME_IS_MANUAL = "isManual"; + @SerializedName(SERIALIZED_NAME_IS_MANUAL) + @javax.annotation.Nullable + private Integer isManual; + + public static final String SERIALIZED_NAME_IS_TO_BE_AUTOMATED = "isToBeAutomated"; + @SerializedName(SERIALIZED_NAME_IS_TO_BE_AUTOMATED) + @javax.annotation.Nullable + private Integer isToBeAutomated; + public static final String SERIALIZED_NAME_STATUS = "status"; @SerializedName(SERIALIZED_NAME_STATUS) @javax.annotation.Nullable @@ -504,25 +515,67 @@ public void setBehavior(@javax.annotation.Nullable Integer behavior) { } + @Deprecated public TestCase automation(@javax.annotation.Nullable Integer automation) { this.automation = automation; return this; } /** - * Get automation + * Deprecated, use `isManual` and `isToBeAutomated` instead. Encodes the test case automation state as a single integer: `0` = manual, `1` = manual planned to be automated, `2` = automated. * @return automation + * @deprecated */ + @Deprecated @javax.annotation.Nullable public Integer getAutomation() { return automation; } + @Deprecated public void setAutomation(@javax.annotation.Nullable Integer automation) { this.automation = automation; } + public TestCase isManual(@javax.annotation.Nullable Integer isManual) { + this.isManual = isManual; + return this; + } + + /** + * `1` if the case is manual, `0` if it is automated. Combined with `isToBeAutomated`, replaces the deprecated `automation` field. + * @return isManual + */ + @javax.annotation.Nullable + public Integer getIsManual() { + return isManual; + } + + public void setIsManual(@javax.annotation.Nullable Integer isManual) { + this.isManual = isManual; + } + + + public TestCase isToBeAutomated(@javax.annotation.Nullable Integer isToBeAutomated) { + this.isToBeAutomated = isToBeAutomated; + return this; + } + + /** + * `1` if a manual case is planned to be automated, `0` otherwise. Only meaningful when `isManual = 1`; ignored when `isManual = 0`. + * @return isToBeAutomated + */ + @javax.annotation.Nullable + public Integer getIsToBeAutomated() { + return isToBeAutomated; + } + + public void setIsToBeAutomated(@javax.annotation.Nullable Integer isToBeAutomated) { + this.isToBeAutomated = isToBeAutomated; + } + + public TestCase status(@javax.annotation.Nullable Integer status) { this.status = status; return this; @@ -1000,6 +1053,8 @@ public boolean equals(Object o) { Objects.equals(this.isFlaky, testCase.isFlaky) && Objects.equals(this.behavior, testCase.behavior) && Objects.equals(this.automation, testCase.automation) && + Objects.equals(this.isManual, testCase.isManual) && + Objects.equals(this.isToBeAutomated, testCase.isToBeAutomated) && Objects.equals(this.status, testCase.status) && Objects.equals(this.milestoneId, testCase.milestoneId) && Objects.equals(this.suiteId, testCase.suiteId) && @@ -1027,7 +1082,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(id, position, title, description, preconditions, postconditions, severity, priority, type, layer, isFlaky, behavior, automation, status, milestoneId, suiteId, customFields, attachments, stepsType, steps, params, parameters, tags, memberId, authorId, createdAt, updatedAt, deleted, created, updated, externalIssues, additionalProperties); + return Objects.hash(id, position, title, description, preconditions, postconditions, severity, priority, type, layer, isFlaky, behavior, automation, isManual, isToBeAutomated, status, milestoneId, suiteId, customFields, attachments, stepsType, steps, params, parameters, tags, memberId, authorId, createdAt, updatedAt, deleted, created, updated, externalIssues, additionalProperties); } private static int hashCodeNullable(JsonNullable a) { @@ -1054,6 +1109,8 @@ public String toString() { sb.append(" isFlaky: ").append(toIndentedString(isFlaky)).append("\n"); sb.append(" behavior: ").append(toIndentedString(behavior)).append("\n"); sb.append(" automation: ").append(toIndentedString(automation)).append("\n"); + sb.append(" isManual: ").append(toIndentedString(isManual)).append("\n"); + sb.append(" isToBeAutomated: ").append(toIndentedString(isToBeAutomated)).append("\n"); sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" milestoneId: ").append(toIndentedString(milestoneId)).append("\n"); sb.append(" suiteId: ").append(toIndentedString(suiteId)).append("\n"); @@ -1094,7 +1151,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(Arrays.asList("id", "position", "title", "description", "preconditions", "postconditions", "severity", "priority", "type", "layer", "is_flaky", "behavior", "automation", "status", "milestone_id", "suite_id", "custom_fields", "attachments", "steps_type", "steps", "params", "parameters", "tags", "member_id", "author_id", "created_at", "updated_at", "deleted", "created", "updated", "external_issues")); + openapiFields = new HashSet(Arrays.asList("id", "position", "title", "description", "preconditions", "postconditions", "severity", "priority", "type", "layer", "is_flaky", "behavior", "automation", "isManual", "isToBeAutomated", "status", "milestone_id", "suite_id", "custom_fields", "attachments", "steps_type", "steps", "params", "parameters", "tags", "member_id", "author_id", "created_at", "updated_at", "deleted", "created", "updated", "external_issues")); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(0); diff --git a/qase-api-client/src/main/java/io/qase/client/v1/models/TestCaseCreate.java b/qase-api-client/src/main/java/io/qase/client/v1/models/TestCaseCreate.java index 18528031..ad716c10 100644 --- a/qase-api-client/src/main/java/io/qase/client/v1/models/TestCaseCreate.java +++ b/qase-api-client/src/main/java/io/qase/client/v1/models/TestCaseCreate.java @@ -118,10 +118,21 @@ public class TestCaseCreate { private Long milestoneId; public static final String SERIALIZED_NAME_AUTOMATION = "automation"; + @Deprecated @SerializedName(SERIALIZED_NAME_AUTOMATION) @javax.annotation.Nullable private Integer automation; + public static final String SERIALIZED_NAME_IS_MANUAL = "isManual"; + @SerializedName(SERIALIZED_NAME_IS_MANUAL) + @javax.annotation.Nullable + private Integer isManual; + + public static final String SERIALIZED_NAME_IS_TO_BE_AUTOMATED = "isToBeAutomated"; + @SerializedName(SERIALIZED_NAME_IS_TO_BE_AUTOMATED) + @javax.annotation.Nullable + private Integer isToBeAutomated; + public static final String SERIALIZED_NAME_STATUS = "status"; @SerializedName(SERIALIZED_NAME_STATUS) @javax.annotation.Nullable @@ -456,25 +467,67 @@ public void setMilestoneId(@javax.annotation.Nullable Long milestoneId) { } + @Deprecated public TestCaseCreate automation(@javax.annotation.Nullable Integer automation) { this.automation = automation; return this; } /** - * Get automation + * Deprecated, use `isManual` and `isToBeAutomated` instead. Encodes the test case automation state as a single integer: `0` = manual, `1` = manual planned to be automated, `2` = automated. If both `automation` and `isManual`/`isToBeAutomated` are provided, `isManual` and `isToBeAutomated` take precedence. * @return automation + * @deprecated */ + @Deprecated @javax.annotation.Nullable public Integer getAutomation() { return automation; } + @Deprecated public void setAutomation(@javax.annotation.Nullable Integer automation) { this.automation = automation; } + public TestCaseCreate isManual(@javax.annotation.Nullable Integer isManual) { + this.isManual = isManual; + return this; + } + + /** + * `1` if the case is manual, `0` if it is automated. Combined with `isToBeAutomated`, replaces the deprecated `automation` field. + * @return isManual + */ + @javax.annotation.Nullable + public Integer getIsManual() { + return isManual; + } + + public void setIsManual(@javax.annotation.Nullable Integer isManual) { + this.isManual = isManual; + } + + + public TestCaseCreate isToBeAutomated(@javax.annotation.Nullable Integer isToBeAutomated) { + this.isToBeAutomated = isToBeAutomated; + return this; + } + + /** + * `1` if a manual case is planned to be automated, `0` otherwise. Only meaningful when `isManual = 1`; ignored when `isManual = 0`. + * @return isToBeAutomated + */ + @javax.annotation.Nullable + public Integer getIsToBeAutomated() { + return isToBeAutomated; + } + + public void setIsToBeAutomated(@javax.annotation.Nullable Integer isToBeAutomated) { + this.isToBeAutomated = isToBeAutomated; + } + + public TestCaseCreate status(@javax.annotation.Nullable Integer status) { this.status = status; return this; @@ -666,7 +719,7 @@ public TestCaseCreate putCustomFieldItem(String key, String customFieldItem) { } /** - * A map of custom fields values (id => value) + * Custom field values keyed by the field's project-scoped `internal_id` (see `GET /custom_field`). Values are always **scalar strings**; arrays, objects or non-scalars are rejected. | Field type | Value format | Example | |----------------------|-------------------------------------------|-------------------------| | `string`, `text` | Plain string | `\"hello\"` | | `number` | Numeric string | `\"42\"` | | `url` | Valid URL | `\"https://qase.io\"` | | `datetime` | Absolute date (ISO 8601 recommended) | `\"2026-04-29T15:00:00Z\"`| | `selectbox`, `radio` | Option `id` as string | `\"1\"` | | `multiselect` | Comma-separated option `id`s (no spaces) | `\"1,2,3\"` | | `checkbox` | `\"1\"` to check, `\"\"` to uncheck | `\"1\"` | | `user` | Team member `internal_id` as string | `\"42\"` | Validation: all required fields without a default value must be present and non-empty; unknown `internal_id`s are rejected; option-based values must reference an existing option. Note: a `required` checkbox without a default cannot be unchecked via the API — set a default or clear `required` in workspace settings. * @return customField */ @javax.annotation.Nullable @@ -784,6 +837,8 @@ public boolean equals(Object o) { Objects.equals(this.suiteId, testCaseCreate.suiteId) && Objects.equals(this.milestoneId, testCaseCreate.milestoneId) && Objects.equals(this.automation, testCaseCreate.automation) && + Objects.equals(this.isManual, testCaseCreate.isManual) && + Objects.equals(this.isToBeAutomated, testCaseCreate.isToBeAutomated) && Objects.equals(this.status, testCaseCreate.status) && Objects.equals(this.stepsType, testCaseCreate.stepsType) && Objects.equals(this.attachments, testCaseCreate.attachments) && @@ -803,7 +858,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(description, preconditions, postconditions, title, severity, priority, behavior, type, layer, isFlaky, suiteId, milestoneId, automation, status, stepsType, attachments, steps, tags, params, parameters, customField, createdAt, updatedAt, additionalProperties); + return Objects.hash(description, preconditions, postconditions, title, severity, priority, behavior, type, layer, isFlaky, suiteId, milestoneId, automation, isManual, isToBeAutomated, status, stepsType, attachments, steps, tags, params, parameters, customField, createdAt, updatedAt, additionalProperties); } private static int hashCodeNullable(JsonNullable a) { @@ -830,6 +885,8 @@ public String toString() { sb.append(" suiteId: ").append(toIndentedString(suiteId)).append("\n"); sb.append(" milestoneId: ").append(toIndentedString(milestoneId)).append("\n"); sb.append(" automation: ").append(toIndentedString(automation)).append("\n"); + sb.append(" isManual: ").append(toIndentedString(isManual)).append("\n"); + sb.append(" isToBeAutomated: ").append(toIndentedString(isToBeAutomated)).append("\n"); sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" stepsType: ").append(toIndentedString(stepsType)).append("\n"); sb.append(" attachments: ").append(toIndentedString(attachments)).append("\n"); @@ -862,7 +919,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(Arrays.asList("description", "preconditions", "postconditions", "title", "severity", "priority", "behavior", "type", "layer", "is_flaky", "suite_id", "milestone_id", "automation", "status", "steps_type", "attachments", "steps", "tags", "params", "parameters", "custom_field", "created_at", "updated_at")); + openapiFields = new HashSet(Arrays.asList("description", "preconditions", "postconditions", "title", "severity", "priority", "behavior", "type", "layer", "is_flaky", "suite_id", "milestone_id", "automation", "isManual", "isToBeAutomated", "status", "steps_type", "attachments", "steps", "tags", "params", "parameters", "custom_field", "created_at", "updated_at")); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(Arrays.asList("title")); diff --git a/qase-api-client/src/main/java/io/qase/client/v1/models/TestCaseUpdate.java b/qase-api-client/src/main/java/io/qase/client/v1/models/TestCaseUpdate.java index 49599d19..f68ef3cc 100644 --- a/qase-api-client/src/main/java/io/qase/client/v1/models/TestCaseUpdate.java +++ b/qase-api-client/src/main/java/io/qase/client/v1/models/TestCaseUpdate.java @@ -118,10 +118,21 @@ public class TestCaseUpdate { private Long milestoneId; public static final String SERIALIZED_NAME_AUTOMATION = "automation"; + @Deprecated @SerializedName(SERIALIZED_NAME_AUTOMATION) @javax.annotation.Nullable private Integer automation; + public static final String SERIALIZED_NAME_IS_MANUAL = "isManual"; + @SerializedName(SERIALIZED_NAME_IS_MANUAL) + @javax.annotation.Nullable + private Integer isManual; + + public static final String SERIALIZED_NAME_IS_TO_BE_AUTOMATED = "isToBeAutomated"; + @SerializedName(SERIALIZED_NAME_IS_TO_BE_AUTOMATED) + @javax.annotation.Nullable + private Integer isToBeAutomated; + public static final String SERIALIZED_NAME_STATUS = "status"; @SerializedName(SERIALIZED_NAME_STATUS) @javax.annotation.Nullable @@ -446,25 +457,67 @@ public void setMilestoneId(@javax.annotation.Nullable Long milestoneId) { } + @Deprecated public TestCaseUpdate automation(@javax.annotation.Nullable Integer automation) { this.automation = automation; return this; } /** - * Get automation + * Deprecated, use `isManual` and `isToBeAutomated` instead. Encodes the test case automation state as a single integer: `0` = manual, `1` = manual planned to be automated, `2` = automated. If both `automation` and `isManual`/`isToBeAutomated` are provided, `isManual` and `isToBeAutomated` take precedence. * @return automation + * @deprecated */ + @Deprecated @javax.annotation.Nullable public Integer getAutomation() { return automation; } + @Deprecated public void setAutomation(@javax.annotation.Nullable Integer automation) { this.automation = automation; } + public TestCaseUpdate isManual(@javax.annotation.Nullable Integer isManual) { + this.isManual = isManual; + return this; + } + + /** + * `1` if the case is manual, `0` if it is automated. Combined with `isToBeAutomated`, replaces the deprecated `automation` field. + * @return isManual + */ + @javax.annotation.Nullable + public Integer getIsManual() { + return isManual; + } + + public void setIsManual(@javax.annotation.Nullable Integer isManual) { + this.isManual = isManual; + } + + + public TestCaseUpdate isToBeAutomated(@javax.annotation.Nullable Integer isToBeAutomated) { + this.isToBeAutomated = isToBeAutomated; + return this; + } + + /** + * `1` if a manual case is planned to be automated, `0` otherwise. Only meaningful when `isManual = 1`; ignored when `isManual = 0`. + * @return isToBeAutomated + */ + @javax.annotation.Nullable + public Integer getIsToBeAutomated() { + return isToBeAutomated; + } + + public void setIsToBeAutomated(@javax.annotation.Nullable Integer isToBeAutomated) { + this.isToBeAutomated = isToBeAutomated; + } + + public TestCaseUpdate status(@javax.annotation.Nullable Integer status) { this.status = status; return this; @@ -656,7 +709,7 @@ public TestCaseUpdate putCustomFieldItem(String key, String customFieldItem) { } /** - * A map of custom fields values (id => value) + * Custom field values keyed by the field's project-scoped `internal_id` (see `GET /custom_field`). Values are always **scalar strings**; arrays, objects or non-scalars are rejected. | Field type | Value format | Example | |----------------------|-------------------------------------------|-------------------------| | `string`, `text` | Plain string | `\"hello\"` | | `number` | Numeric string | `\"42\"` | | `url` | Valid URL | `\"https://qase.io\"` | | `datetime` | Absolute date (ISO 8601 recommended) | `\"2026-04-29T15:00:00Z\"`| | `selectbox`, `radio` | Option `id` as string | `\"1\"` | | `multiselect` | Comma-separated option `id`s (no spaces) | `\"1,2,3\"` | | `checkbox` | `\"1\"` to check, `\"\"` to uncheck | `\"1\"` | | `user` | Team member `internal_id` as string | `\"42\"` | Partial update: only fields present in the payload are validated; required fields not included are not enforced. Send `\"\"` to clear a value. Unknown `internal_id`s are rejected; option-based values must reference an existing option. Note: a `required` checkbox without a default cannot be unchecked via the API — set a default or clear `required` in workspace settings. * @return customField */ @javax.annotation.Nullable @@ -736,6 +789,8 @@ public boolean equals(Object o) { Objects.equals(this.suiteId, testCaseUpdate.suiteId) && Objects.equals(this.milestoneId, testCaseUpdate.milestoneId) && Objects.equals(this.automation, testCaseUpdate.automation) && + Objects.equals(this.isManual, testCaseUpdate.isManual) && + Objects.equals(this.isToBeAutomated, testCaseUpdate.isToBeAutomated) && Objects.equals(this.status, testCaseUpdate.status) && Objects.equals(this.stepsType, testCaseUpdate.stepsType) && Objects.equals(this.attachments, testCaseUpdate.attachments) && @@ -753,7 +808,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(description, preconditions, postconditions, title, severity, priority, behavior, type, layer, isFlaky, suiteId, milestoneId, automation, status, stepsType, attachments, steps, tags, params, parameters, customField, additionalProperties); + return Objects.hash(description, preconditions, postconditions, title, severity, priority, behavior, type, layer, isFlaky, suiteId, milestoneId, automation, isManual, isToBeAutomated, status, stepsType, attachments, steps, tags, params, parameters, customField, additionalProperties); } private static int hashCodeNullable(JsonNullable a) { @@ -780,6 +835,8 @@ public String toString() { sb.append(" suiteId: ").append(toIndentedString(suiteId)).append("\n"); sb.append(" milestoneId: ").append(toIndentedString(milestoneId)).append("\n"); sb.append(" automation: ").append(toIndentedString(automation)).append("\n"); + sb.append(" isManual: ").append(toIndentedString(isManual)).append("\n"); + sb.append(" isToBeAutomated: ").append(toIndentedString(isToBeAutomated)).append("\n"); sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" stepsType: ").append(toIndentedString(stepsType)).append("\n"); sb.append(" attachments: ").append(toIndentedString(attachments)).append("\n"); @@ -810,7 +867,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(Arrays.asList("description", "preconditions", "postconditions", "title", "severity", "priority", "behavior", "type", "layer", "is_flaky", "suite_id", "milestone_id", "automation", "status", "steps_type", "attachments", "steps", "tags", "params", "parameters", "custom_field")); + openapiFields = new HashSet(Arrays.asList("description", "preconditions", "postconditions", "title", "severity", "priority", "behavior", "type", "layer", "is_flaky", "suite_id", "milestone_id", "automation", "isManual", "isToBeAutomated", "status", "steps_type", "attachments", "steps", "tags", "params", "parameters", "custom_field")); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(0); diff --git a/qase-api-client/src/main/java/io/qase/client/v1/models/TestCasebulkCasesInner.java b/qase-api-client/src/main/java/io/qase/client/v1/models/TestCasebulkCasesInner.java index fbe18a82..5d1da417 100644 --- a/qase-api-client/src/main/java/io/qase/client/v1/models/TestCasebulkCasesInner.java +++ b/qase-api-client/src/main/java/io/qase/client/v1/models/TestCasebulkCasesInner.java @@ -118,10 +118,21 @@ public class TestCasebulkCasesInner { private Long milestoneId; public static final String SERIALIZED_NAME_AUTOMATION = "automation"; + @Deprecated @SerializedName(SERIALIZED_NAME_AUTOMATION) @javax.annotation.Nullable private Integer automation; + public static final String SERIALIZED_NAME_IS_MANUAL = "isManual"; + @SerializedName(SERIALIZED_NAME_IS_MANUAL) + @javax.annotation.Nullable + private Integer isManual; + + public static final String SERIALIZED_NAME_IS_TO_BE_AUTOMATED = "isToBeAutomated"; + @SerializedName(SERIALIZED_NAME_IS_TO_BE_AUTOMATED) + @javax.annotation.Nullable + private Integer isToBeAutomated; + public static final String SERIALIZED_NAME_STATUS = "status"; @SerializedName(SERIALIZED_NAME_STATUS) @javax.annotation.Nullable @@ -461,25 +472,67 @@ public void setMilestoneId(@javax.annotation.Nullable Long milestoneId) { } + @Deprecated public TestCasebulkCasesInner automation(@javax.annotation.Nullable Integer automation) { this.automation = automation; return this; } /** - * Get automation + * Deprecated, use `isManual` and `isToBeAutomated` instead. Encodes the test case automation state as a single integer: `0` = manual, `1` = manual planned to be automated, `2` = automated. If both `automation` and `isManual`/`isToBeAutomated` are provided, `isManual` and `isToBeAutomated` take precedence. * @return automation + * @deprecated */ + @Deprecated @javax.annotation.Nullable public Integer getAutomation() { return automation; } + @Deprecated public void setAutomation(@javax.annotation.Nullable Integer automation) { this.automation = automation; } + public TestCasebulkCasesInner isManual(@javax.annotation.Nullable Integer isManual) { + this.isManual = isManual; + return this; + } + + /** + * `1` if the case is manual, `0` if it is automated. Combined with `isToBeAutomated`, replaces the deprecated `automation` field. + * @return isManual + */ + @javax.annotation.Nullable + public Integer getIsManual() { + return isManual; + } + + public void setIsManual(@javax.annotation.Nullable Integer isManual) { + this.isManual = isManual; + } + + + public TestCasebulkCasesInner isToBeAutomated(@javax.annotation.Nullable Integer isToBeAutomated) { + this.isToBeAutomated = isToBeAutomated; + return this; + } + + /** + * `1` if a manual case is planned to be automated, `0` otherwise. Only meaningful when `isManual = 1`; ignored when `isManual = 0`. + * @return isToBeAutomated + */ + @javax.annotation.Nullable + public Integer getIsToBeAutomated() { + return isToBeAutomated; + } + + public void setIsToBeAutomated(@javax.annotation.Nullable Integer isToBeAutomated) { + this.isToBeAutomated = isToBeAutomated; + } + + public TestCasebulkCasesInner status(@javax.annotation.Nullable Integer status) { this.status = status; return this; @@ -671,7 +724,7 @@ public TestCasebulkCasesInner putCustomFieldItem(String key, String customFieldI } /** - * A map of custom fields values (id => value) + * Custom field values keyed by the field's project-scoped `internal_id` (see `GET /custom_field`). Values are always **scalar strings**; arrays, objects or non-scalars are rejected. | Field type | Value format | Example | |----------------------|-------------------------------------------|-------------------------| | `string`, `text` | Plain string | `\"hello\"` | | `number` | Numeric string | `\"42\"` | | `url` | Valid URL | `\"https://qase.io\"` | | `datetime` | Absolute date (ISO 8601 recommended) | `\"2026-04-29T15:00:00Z\"`| | `selectbox`, `radio` | Option `id` as string | `\"1\"` | | `multiselect` | Comma-separated option `id`s (no spaces) | `\"1,2,3\"` | | `checkbox` | `\"1\"` to check, `\"\"` to uncheck | `\"1\"` | | `user` | Team member `internal_id` as string | `\"42\"` | Validation: all required fields without a default value must be present and non-empty; unknown `internal_id`s are rejected; option-based values must reference an existing option. Note: a `required` checkbox without a default cannot be unchecked via the API — set a default or clear `required` in workspace settings. * @return customField */ @javax.annotation.Nullable @@ -808,6 +861,8 @@ public boolean equals(Object o) { Objects.equals(this.suiteId, testCasebulkCasesInner.suiteId) && Objects.equals(this.milestoneId, testCasebulkCasesInner.milestoneId) && Objects.equals(this.automation, testCasebulkCasesInner.automation) && + Objects.equals(this.isManual, testCasebulkCasesInner.isManual) && + Objects.equals(this.isToBeAutomated, testCasebulkCasesInner.isToBeAutomated) && Objects.equals(this.status, testCasebulkCasesInner.status) && Objects.equals(this.stepsType, testCasebulkCasesInner.stepsType) && Objects.equals(this.attachments, testCasebulkCasesInner.attachments) && @@ -828,7 +883,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(description, preconditions, postconditions, title, severity, priority, behavior, type, layer, isFlaky, suiteId, milestoneId, automation, status, stepsType, attachments, steps, tags, params, parameters, customField, createdAt, updatedAt, id, additionalProperties); + return Objects.hash(description, preconditions, postconditions, title, severity, priority, behavior, type, layer, isFlaky, suiteId, milestoneId, automation, isManual, isToBeAutomated, status, stepsType, attachments, steps, tags, params, parameters, customField, createdAt, updatedAt, id, additionalProperties); } private static int hashCodeNullable(JsonNullable a) { @@ -855,6 +910,8 @@ public String toString() { sb.append(" suiteId: ").append(toIndentedString(suiteId)).append("\n"); sb.append(" milestoneId: ").append(toIndentedString(milestoneId)).append("\n"); sb.append(" automation: ").append(toIndentedString(automation)).append("\n"); + sb.append(" isManual: ").append(toIndentedString(isManual)).append("\n"); + sb.append(" isToBeAutomated: ").append(toIndentedString(isToBeAutomated)).append("\n"); sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" stepsType: ").append(toIndentedString(stepsType)).append("\n"); sb.append(" attachments: ").append(toIndentedString(attachments)).append("\n"); @@ -888,7 +945,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(Arrays.asList("description", "preconditions", "postconditions", "title", "severity", "priority", "behavior", "type", "layer", "is_flaky", "suite_id", "milestone_id", "automation", "status", "steps_type", "attachments", "steps", "tags", "params", "parameters", "custom_field", "created_at", "updated_at", "id")); + openapiFields = new HashSet(Arrays.asList("description", "preconditions", "postconditions", "title", "severity", "priority", "behavior", "type", "layer", "is_flaky", "suite_id", "milestone_id", "automation", "isManual", "isToBeAutomated", "status", "steps_type", "attachments", "steps", "tags", "params", "parameters", "custom_field", "created_at", "updated_at", "id")); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(Arrays.asList("title")); diff --git a/qase-api-v2-client/pom.xml b/qase-api-v2-client/pom.xml index 21b5f670..b1267375 100644 --- a/qase-api-v2-client/pom.xml +++ b/qase-api-v2-client/pom.xml @@ -6,7 +6,7 @@ io.qase qase-java - 4.1.54 + 4.1.55 qase-api-v2-client diff --git a/qase-cucumber-v3-reporter/pom.xml b/qase-cucumber-v3-reporter/pom.xml index f0068db3..7fddc9ab 100644 --- a/qase-cucumber-v3-reporter/pom.xml +++ b/qase-cucumber-v3-reporter/pom.xml @@ -5,7 +5,7 @@ qase-java io.qase - 4.1.54 + 4.1.55 4.0.0 diff --git a/qase-cucumber-v4-reporter/pom.xml b/qase-cucumber-v4-reporter/pom.xml index 22d726ce..4d0f9816 100644 --- a/qase-cucumber-v4-reporter/pom.xml +++ b/qase-cucumber-v4-reporter/pom.xml @@ -5,7 +5,7 @@ qase-java io.qase - 4.1.54 + 4.1.55 4.0.0 diff --git a/qase-cucumber-v5-reporter/pom.xml b/qase-cucumber-v5-reporter/pom.xml index a9aa8197..fdab5994 100644 --- a/qase-cucumber-v5-reporter/pom.xml +++ b/qase-cucumber-v5-reporter/pom.xml @@ -5,7 +5,7 @@ qase-java io.qase - 4.1.54 + 4.1.55 4.0.0 diff --git a/qase-cucumber-v6-reporter/pom.xml b/qase-cucumber-v6-reporter/pom.xml index f5e5905b..f0b5ea92 100644 --- a/qase-cucumber-v6-reporter/pom.xml +++ b/qase-cucumber-v6-reporter/pom.xml @@ -5,7 +5,7 @@ qase-java io.qase - 4.1.54 + 4.1.55 4.0.0 diff --git a/qase-cucumber-v7-reporter/pom.xml b/qase-cucumber-v7-reporter/pom.xml index e3c95b9e..67674363 100644 --- a/qase-cucumber-v7-reporter/pom.xml +++ b/qase-cucumber-v7-reporter/pom.xml @@ -5,7 +5,7 @@ qase-java io.qase - 4.1.54 + 4.1.55 4.0.0 diff --git a/qase-java-commons/pom.xml b/qase-java-commons/pom.xml index 4400bc07..59b0df23 100644 --- a/qase-java-commons/pom.xml +++ b/qase-java-commons/pom.xml @@ -6,7 +6,7 @@ io.qase qase-java - 4.1.54 + 4.1.55 qase-java-commons diff --git a/qase-junit4-reporter/pom.xml b/qase-junit4-reporter/pom.xml index 03828dc6..5a3503ea 100644 --- a/qase-junit4-reporter/pom.xml +++ b/qase-junit4-reporter/pom.xml @@ -5,7 +5,7 @@ qase-java io.qase - 4.1.54 + 4.1.55 4.0.0 diff --git a/qase-junit5-reporter/pom.xml b/qase-junit5-reporter/pom.xml index e545b0bc..43f20b6a 100644 --- a/qase-junit5-reporter/pom.xml +++ b/qase-junit5-reporter/pom.xml @@ -5,7 +5,7 @@ qase-java io.qase - 4.1.54 + 4.1.55 4.0.0 diff --git a/qase-testng-reporter/pom.xml b/qase-testng-reporter/pom.xml index 8e1cacfc..7c825ef7 100644 --- a/qase-testng-reporter/pom.xml +++ b/qase-testng-reporter/pom.xml @@ -5,7 +5,7 @@ qase-java io.qase - 4.1.54 + 4.1.55 4.0.0