[8.15] [OAS][Cases] Add case templates to case configuration APIs (#187613) (#187788)

<!--BACKPORT [{"author":{"name":"Lisa
Cawley","email":"lcawley@elastic.co"},"sourceCommit":{"committedDate":"2024-07-08T18:10:38Z","message":"[OAS][Cases]
Add case templates to case configuration APIs
(#187613)","sha":"35ee0ccbb0f45310525865d24ad0d5cba68d10f6","branchLabelMapping":{"^v8.16.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Team:ResponseOps","docs","Feature:Cases","v8.15.0","v8.16.0"],"title":"[OAS][Cases]
Add case templates to case configuration
APIs","number":187613,"url":"https://github.com/elastic/kibana/pull/187613","mergeCommit":{"message":"[OAS][Cases]
Add case templates to case configuration APIs
(#187613)","sha":"35ee0ccbb0f45310525865d24ad0d5cba68d10f6"}},"sourceBranch":"main","suggestedTargetBranches":["8.15"],"targetPullRequestStates":[{"branch":"8.15","label":"v8.15.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v8.16.0","branchLabelMappingKey":"^v8.16.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/187613","number":187613,"mergeCommit":{"message":"[OAS][Cases]
Add case templates to case configuration APIs
(#187613)","sha":"35ee0ccbb0f45310525865d24ad0d5cba68d10f6"}}]}]
BACKPORT-->
This commit is contained in:
Kibana Machine 2024-07-09 01:39:16 +02:00 committed by GitHub
parent 17bf446e73
commit b3138be858
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
35 changed files with 1339 additions and 602 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -4,11 +4,12 @@ value:
closure_type: close-by-user
customFields:
- key: d312efda-ec2b-42ec-9e2c-84981795c581
defaultValue: Custom text field value.
label: my-text-field
required: false
type: text
owner: cases
created_at: 2023-06-01T17:07:17.767Z
created_at: 2024-07-01T17:07:17.767Z
created_by:
username: elastic
email: null
@ -21,5 +22,30 @@ value:
type: .none
fields: null
mappings: []
version: WzUxLDRd
version: WzEyLDNd
error: null
templates:
- key: 505932fe-ee3a-4960-a661-c781b5acdb05
name: template-1
caseFields:
title: Default case title
tags:
- Default case tag
category: Default-category
description: A default description for cases.
assignees:
- uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0
connector:
id: none
type: .none
fields: null
name: none
customFields:
- key: d312efda-ec2b-42ec-9e2c-84981795c581
value: Default text field value.
type: text
settings:
syncAlerts: false
description: A description of the template.
tags:
- Template tag 1

View file

@ -1,4 +1,4 @@
summary: Set the closure type and default connector for Stack Management cases.
summary: Set the closure type, custom fields, and default connector for Stack Management cases.
value:
owner: cases
connector:
@ -11,4 +11,23 @@ value:
- key: d312efda-ec2b-42ec-9e2c-84981795c581
label: my-text-field
required: false
type: text
type: text
defaultValue: My custom field default value.
templates:
- key: 505932fe-ee3a-4960-a661-c781b5acdb05
name: template-1
caseFields:
title: Default case title
tags:
- Default case tag
category: Default-category
description: A default description for cases.
assignees:
- uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0
customFields:
- key: d312efda-ec2b-42ec-9e2c-84981795c581
type: text
value: A text field value for the template.
description: A description of the template.
tags:
- Template tag 1

View file

@ -6,8 +6,27 @@ value:
label: my-text-field
required: false
type: text
defaultValue: My custom field default value.
templates:
- key: 505932fe-ee3a-4960-a661-c781b5acdb05
name: template-1
caseFields:
title: Default case title
tags:
- Default case tag
category: Default-category
description: A default description for cases.
assignees:
- uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0
customFields:
- key: d312efda-ec2b-42ec-9e2c-84981795c581
type: text
value: A text field value for the template.
description: A description of the template.
tags:
- Template tag 1
owner: cases
created_at: 2023-10-01T17:07:17.767Z
created_at: 2024-07-01T17:07:17.767Z
created_by:
username: elastic
email: null,
@ -30,6 +49,9 @@ value:
- source: comments
target: comments
action_type: append
- source: tags
target: labels
action_type: overwrite
version: WzIwNzMsMV0=
error: null
id: 4a97a440-e1cd-11ec-be9b-9b1838238ee6

View file

@ -12,6 +12,7 @@ value:
label: my-text-field
required: true
type: text
defaultValue: "A new default value."
- key: fcc6840d-eb14-42df-8aaf-232201a705ec
label: my-toggle
required: false

View file

@ -6,18 +6,19 @@ value:
label: my-text-field
required: true
type: text
defaultValue: A new default value.
- key: fcc6840d-eb14-42df-8aaf-232201a705ec
label: my-toggle
required: false
type: toggle
owner: cases
created_at: 2023-10-01T17:07:17.767Z
created_at: 2024-07-01T17:07:17.767Z
created_by:
username: elastic
email: null,
email: null
full_name: null
profile_uid: u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0
updated_at: 2023-10-19T00:52:42.401Z
updated_at: 2024-07-19T00:52:42.401Z
updated_by:
username: elastic
full_name: null
@ -35,9 +36,13 @@ value:
- source: description
target: description
action_type: overwrite
- source: tags
target: labels
action_type: overwrite
- source: comments
target: comments
action_type: append
version: zEzNSw1XQ==
version: WzI2LDNd
error: null
id: 4a97a440-e1cd-11ec-be9b-9b1838238ee6
id: 4a97a440-e1cd-11ec-be9b-9b1838238ee6
templates: []

View file

@ -0,0 +1,3 @@
description: A word or phrase that categorizes the case.
type: string
maxLength: 50

View file

@ -1,3 +1,11 @@
defaultValue:
oneOf:
- type: string
- type: boolean
description: >
A default value for the custom field.
If the `type` is `text`, the default value must be a string.
If the `type` is `toggle`, the default value must be boolean.
key:
description: >
A unique key for the custom field.

View file

@ -1,13 +1,5 @@
closure_type:
$ref: 'closure_types.yaml'
customFields:
type: array
x-technical-preview: true
description: Custom fields configuration details.
items:
type: object
properties:
$ref: 'case_configure_customfields.yaml'
connector:
type: object
properties:
@ -25,6 +17,14 @@ created_by:
- username
properties:
$ref: 'user_properties.yaml'
customFields:
type: array
x-technical-preview: true
description: Custom fields configuration details.
items:
type: object
properties:
$ref: 'case_configure_customfields.yaml'
error:
type:
- "string"
@ -54,6 +54,8 @@ mappings:
- summary
owner:
$ref: 'owners.yaml'
templates:
$ref: 'templates.yaml'
updated_at:
type:
- "string"

View file

@ -0,0 +1,3 @@
description: The description for the case.
type: string
maxLength: 30000

View file

@ -112,9 +112,9 @@ properties:
settings:
$ref: 'settings.yaml'
severity:
$ref: 'severity_property.yaml'
$ref: 'case_severity.yaml'
status:
$ref: 'status.yaml'
$ref: 'case_status.yaml'
tags:
type: array
items:

View file

@ -0,0 +1,7 @@
description: >
The words and phrases that help categorize cases. It can be an empty array.
type: array
maxItems: 200
items:
type: string
maxLength: 256

View file

@ -0,0 +1,3 @@
description: A title for the case.
type: string
maxLength: 160

View file

@ -22,30 +22,19 @@ properties:
- $ref: 'connector_properties_servicenow_sir.yaml'
- $ref: 'connector_properties_swimlane.yaml'
description:
description: The description for the case.
type: string
maxLength: 30000
$ref: 'case_description.yaml'
owner:
$ref: 'owners.yaml'
settings:
$ref: 'settings.yaml'
severity:
$ref: 'severity_property.yaml'
$ref: 'case_severity.yaml'
tags:
description: The words and phrases that help categorize cases. It can be an empty array.
type: array
maxItems: 200
items:
type: string
maxLength: 256
$ref: 'case_tags.yaml'
category:
description: A word or phrase that categorizes the case.
type: string
maxLength: 50
$ref: 'case_category.yaml'
title:
description: A title for the case.
type: string
maxLength: 160
$ref: 'case_title.yaml'
customFields:
type: array
description: >

View file

@ -13,9 +13,9 @@ properties:
settings:
$ref: 'settings.yaml'
severity:
$ref: 'severity_property.yaml'
$ref: 'case_severity.yaml'
status:
$ref: 'status.yaml'
$ref: 'case_status.yaml'
tags:
type: array
items:

View file

@ -1,4 +1,4 @@
type: object
properties:
severity:
$ref: 'severity_property.yaml'
$ref: 'case_severity.yaml'

View file

@ -1,4 +1,4 @@
type: object
properties:
status:
$ref: 'status.yaml'
$ref: 'case_status.yaml'

View file

@ -35,3 +35,5 @@ properties:
$ref: 'case_configure_customfields.yaml'
owner:
$ref: 'owners.yaml'
templates:
$ref: 'templates.yaml'

View file

@ -0,0 +1,7 @@
description: >
The words and phrases that help categorize templates. It can be an empty array.
type: array
maxItems: 200
items:
type: string
maxLength: 256

View file

@ -0,0 +1,66 @@
type: array
x-technical-preview: true
items:
type: object
properties:
caseFields:
type: object
properties:
assignees:
$ref: 'assignees.yaml'
category:
$ref: 'case_category.yaml'
connector:
type: object
properties:
$ref: 'case_configure_connector_properties.yaml'
customFields:
type: array
x-technical-preview: true
description: Custom field values in the template.
items:
type: object
properties:
key:
type: string
description: The unique key for the custom field.
type:
type: string
enum:
- text
- toggle
description: The type of the custom field.
value:
oneOf:
- type: string
- type: boolean
description: >
The default value for the custom field when a case uses the template.
If the `type` is `text`, the default value must be a string.
If the `type` is `toggle`, the default value must be boolean.
description:
$ref: 'case_description.yaml'
settings:
$ref: 'settings.yaml'
severity:
$ref: 'case_severity.yaml'
tags:
$ref: 'case_tags.yaml'
title:
$ref: 'case_title.yaml'
description:
type: string
description: A description for the template.
key:
type: string
description: >
A unique key for the template.
Must be lower case and composed only of a-z, 0-9, '_', and '-' characters.
It is used in API calls to refer to a specific template.
name:
type: string
description: The name of the template.
tags:
$ref: 'template_tags.yaml'

View file

@ -1,5 +1,6 @@
title: Update case configuration request
description: External connection details, such as the closure type and default connector for cases.
description: >
You can update settings such as the closure type, custom fields, templates, and the default connector for cases.
type: object
required:
- version
@ -29,6 +30,8 @@ properties:
- type
properties:
$ref: 'case_configure_customfields.yaml'
templates:
$ref: 'templates.yaml'
version:
description: >
The version of the connector.

View file

@ -19,9 +19,7 @@ properties:
assignees:
$ref: 'assignees.yaml'
category:
description: A word or phrase that categorizes the case.
type: string
maxLength: 50
$ref: 'case_category.yaml'
connector:
oneOf:
- $ref: 'connector_properties_none.yaml'
@ -48,8 +46,7 @@ properties:
properties:
$ref: 'case_customfields.yaml'
description:
description: An updated description for the case.
type: string
$ref: 'case_description.yaml'
id:
description: The identifier for the case.
type: string
@ -57,20 +54,13 @@ properties:
settings:
$ref: 'settings.yaml'
severity:
$ref: 'severity_property.yaml'
$ref: 'case_severity.yaml'
status:
$ref: 'status.yaml'
$ref: 'case_status.yaml'
tags:
description: The words and phrases that help categorize cases.
type: array
maxItems: 200
items:
type: string
maxLength: 256
$ref: 'case_tags.yaml'
title:
description: A title for the case.
type: string
maxLength: 160
$ref: 'case_title.yaml'
version:
description: The current version of the case. To determine this value, use the get case or find cases APIs.
type: string

View file

@ -1,10 +1,11 @@
get:
summary: Retrieves external connection details, such as the closure type and default connector for cases in the default space.
summary: Get case settings in the default space
operationId: getCaseConfigurationDefaultSpace
description: >
Retrieves setting details such as the closure type, custom fields, templatse, and the default connector for cases in the default space.
You must have `read` privileges for the **Cases** feature in the
**Management**, **Observability**, or **Security** section of the Kibana
feature privileges, depending on the owner of the case configuration.
feature privileges, depending on where the cases were created.
tags:
- cases
parameters:
@ -31,14 +32,15 @@ get:
$ref: '../components/schemas/4xx_response.yaml'
post:
summary: Creates a case specific configuration that includes external connection details and custom fields.
summary: Add case settings in the default space
operationId: setCaseConfigurationDefaultSpace
description: >
You must have `all` privileges for the **Cases** feature in the **Management**, **Observability**, or **Security** section of the Kibana feature privileges, depending on the owner of the case configuration.
Case settings include external connection details, custom fields, and templates.
Connectors are used to interface with external systems.
You must create a connector before you can use it in your cases. Refer to the add connectors API.
You must create a connector before you can use it in your cases.
If you set a default connector, it is automatically selected when you create cases in Kibana.
If you use the create case API, however, you must still specify all of the connector details.
You must have `all` privileges for the **Cases** feature in the **Management**, **Observability**, or **Security** section of the Kibana feature privileges, depending on where you are creating cases.
tags:
- cases
parameters:

View file

@ -1,10 +1,9 @@
get:
summary: Retrieves information about connectors in the default space.
summary: Get case connectors in the default space
operationId: findCaseConnectorsDefaultSpace
description: >
In particular, only the connectors that are supported for use in cases are
returned. You must have `read` privileges for the **Actions and Connectors**
feature in the **Management** section of the Kibana feature privileges.
Retrieves information about connectors that are supported for use in cases in the default space.
You must have `read` privileges for the **Actions and Connectors** feature in the **Management** section of the Kibana feature privileges.
tags:
- cases
responses:

View file

@ -1,11 +1,13 @@
patch:
summary: Updates external connection details, such as the closure type and default connector for cases in the default space.
summary: Update case settings in the default space
operationId: updateCaseConfigurationDefaultSpace
description: >
You must have `all` privileges for the **Cases** feature in the **Management**, **Observability**, or **Security** section of the Kibana feature privileges, depending on the owner of the case configuration.
Updates setting details such as the closure type, custom fields, templates, and the default connector for cases in the default space.
Connectors are used to interface with external systems.
You must create a connector before you can use it in your cases.
Refer to the add connectors API.
You must have `all` privileges for the **Cases** feature in the
**Management**, **Observability**, or **Security** section of the Kibana
feature privileges, depending on where the case was created.
tags:
- cases
parameters:

View file

@ -1,10 +1,11 @@
get:
summary: Retrieves external connection details, such as the closure type and default connector for cases.
summary: Get case settings
operationId: getCaseConfiguration
description: >
Retrieves setting details such as the closure type, custom fields, templates, and the default connector for cases.
You must have `read` privileges for the **Cases** feature in the
**Management**, **Observability**, or **Security** section of the Kibana
feature privileges, depending on the owner of the case configuration.
feature privileges, depending on where the cases were created.
tags:
- cases
parameters:
@ -32,17 +33,15 @@ get:
$ref: '../components/schemas/4xx_response.yaml'
post:
summary: Creates a case specific configuration that includes external connection details and custom fields.
summary: Add case settings
operationId: setCaseConfiguration
description: >
You must have `all` privileges for the **Cases** feature in the
**Management**, **Observability**, or **Security** section of the Kibana
feature privileges, depending on the owner of the case configuration.
Connectors are used to interface with external systems. You must create a
connector before you can use it in your cases. Refer to the add connectors
API. If you set a default connector, it is automatically selected when you
create cases in Kibana. If you use the create case API, however, you must
still specify all of the connector details.
Case settings include external connection details, custom fields, and templates.
Connectors are used to interface with external systems.
You must create a connector before you can use it in your cases.
If you set a default connector, it is automatically selected when you create cases in Kibana.
If you use the create case API, however, you must still specify all of the connector details.
You must have `all` privileges for the **Cases** feature in the **Management**, **Observability**, or **Security** section of the Kibana feature privileges, depending on where you are creating cases.
tags:
- cases
parameters:

View file

@ -1,10 +1,9 @@
get:
summary: Retrieves information about connectors.
summary: Get case connectors
operationId: findCaseConnectors
description: >
In particular, only the connectors that are supported for use in cases are
returned. You must have `read` privileges for the **Actions and Connectors**
feature in the **Management** section of the Kibana feature privileges.
Retrieves information about connectors that are supported for use in cases.
You must have `read` privileges for the **Actions and Connectors** feature in the **Management** section of the Kibana feature privileges.
tags:
- cases
parameters:

View file

@ -1,12 +1,13 @@
patch:
summary: Updates external connection details, such as the closure type and default connector for cases.
summary: Update case settings
operationId: updateCaseConfiguration
description: >
Updates setting details such as the closure type, custom fields, templates, and the default connector for cases.
Connectors are used to interface with external systems.
You must create a connector before you can use it in your cases.
You must have `all` privileges for the **Cases** feature in the
**Management**, **Observability**, or **Security** section of the Kibana
feature privileges, depending on the owner of the case configuration.
Connectors are used to interface with external systems. You must create a
connector before you can use it in your cases. Refer to the add connectors API.
feature privileges, depending on where the case was created.
tags:
- cases
parameters:

View file

@ -15,7 +15,9 @@ export const getCaseConfigureRoute = createCasesRoute({
path: CASE_CONFIGURE_URL,
routerOptions: {
access: 'public',
summary: `Get case settings`,
summary: 'Get case settings',
description:
'Retrieves setting details such as the closure type, custom fields, templates, and the default connector for cases. You must have `read` privileges for the **Cases** feature in the **Management**, **Observability**, or **Security** section of the Kibana feature privileges, depending on where the cases were created.',
},
handler: async ({ context, request, response }) => {
try {

View file

@ -18,7 +18,9 @@ export const getConnectorsRoute = createCasesRoute({
routerOptions: {
tags: ['access:casesGetConnectorsConfigure'],
access: 'public',
summary: `Get case connectors`,
summary: 'Get case connectors',
description:
'Retrieves information about connectors that are supported for use in cases. You must have `read` privileges for the **Actions and Connectors** feature in the **Management** section of the Kibana feature privileges.',
},
handler: async ({ context, response }) => {
try {

View file

@ -17,7 +17,9 @@ export const patchCaseConfigureRoute = createCasesRoute({
path: CASE_CONFIGURE_DETAILS_URL,
routerOptions: {
access: 'public',
summary: `Update case settings`,
summary: 'Update case settings',
description:
'Updates case settings such as the closure type, custom fields, templates, and the default connector for cases. Connectors are used to interface with external systems. You must create a connector before you can use it in your cases. You must have `all` privileges for the **Cases** feature in the **Management**, **Observability**, or **Security** section of the Kibana feature privileges, depending on where the case was created.',
},
handler: async ({ context, request, response }) => {
try {

View file

@ -17,7 +17,9 @@ export const postCaseConfigureRoute = createCasesRoute({
path: CASE_CONFIGURE_URL,
routerOptions: {
access: 'public',
summary: `Add case settings`,
summary: 'Add case settings',
description:
'Case settings include external connection details, custom fields, and templates. Connectors are used to interface with external systems. You must create a connector before you can use it in your cases. If you set a default connector, it is automatically selected when you create cases in Kibana. If you use the create case API, however, you must still specify all of the connector details. You must have `all` privileges for the **Cases** feature in the **Management**, **Observability**, or **Security** section of the Kibana feature privileges, depending on where you are creating cases.',
},
handler: async ({ context, request, response }) => {
try {